コード例 #1
0
 public async Task <ApiResult <string> > LoginWithUserNamePasswordAsync([FromBody] UserNamePasswordLoginRequest request)
 {
     if (!ModelState.IsValid)
     {
         return(Error <string>());
     }
     return(await _userService.LoginWithUserNamePasswordAsync(request));
 }
コード例 #2
0
        /// <summary>
        /// 用户名密码登陆 (jwt)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ApiResult <string> > LoginWithUserNamePasswordAsync(UserNamePasswordLoginRequest request)
        {
            var response = new ApiResult <string>();

            try
            {
                var user = await _userRepository.Table
                           .FirstOrDefaultAsync(item => item.UserName == request.UserName && item.Status == 1);

                if (user == null)
                {
                    response.Code    = Code.Error;
                    response.Message = "该用户名不存在";
                    return(response);
                }
                if (!await _userPasswordService.VerifyPasswordAsync(user.Id, request.Password))
                {
                    response.Code    = Code.Error;
                    response.Message = "密码错误";
                    return(response);
                }
                //获取令牌
                var token = _mangoJwtTokenHandler.IssuedToken <User, long>(user, new Claim("aud", request.Audience));

                user.LastLoginTime = DateTime.Now;
                user.LastloginIP   = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();
                await _work.SaveChangesAsync();

                response.Code    = Code.Ok;
                response.Message = "登陆成功";
                response.Data    = token;
                return(response);
            }
            catch (Exception ex)
            {
                _logger.LogError($"更改密码异常;method={nameof(LoginWithUserNamePasswordAsync)};param={request.ToJson()};exception messges={ex.Message}");
                response.Code    = Code.Error;
                response.Message = $"更改密码异常:{ex.Message}";
                return(response);
            }
        }