Beispiel #1
0
        public async Task <JsonResult> Login([FromBody] UserModel logModel)
        {
            if (string.IsNullOrEmpty(logModel.UserName) || string.IsNullOrEmpty(logModel.PassWord))
            {
                return(Error("用户名或密码不能为空!"));
            }

            if (string.IsNullOrEmpty(logModel.VerfyCode))
            {
                return(Error("图形验证码不能为空!"));
            }

            if (!string.Equals(logModel.VerfyCode, EncyryptionUtil.DESDecrypt(logModel.CodeDes), StringComparison.InvariantCultureIgnoreCase))
            {
                return(Error("图形验证码错误!"));
            }
            var pwd  = EncyryptionUtil.AESEncrypt(logModel.PassWord);
            var user = await _accountService.GetBy(logModel.UserName, pwd);

            if (user != null)
            {
                var userModel = _mapper.Map <UserModel>(user);
                userModel.LoginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                userModel.LoginIP   = HttpContext.Connection.RemoteIpAddress.ToString();
                userModel.Amount    = user.Money.Value;

                //记录登陆IP
                await _accountService.AddLoginIp(user.UserId, userModel.LoginIP);

                var token = _authenticationSupport.SignIn(userModel);
                return(SucessResult(token));
            }

            return(Error("用户名或密码错误!"));
        }