/// <summary> /// 获取 Token /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> public bool IsAuthenticated(DTOLoginRequest request, out string token) { token = string.Empty; if (request.Username != "admin" || request.Password != "123456") { return(false); } request.UserId = 1; var claims = new[] { new Claim(ClaimTypes.Name, request.Username), new Claim(ClaimTypes.NameIdentifier, request.UserId.ToString()) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_tokenManagement.Secret)); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var jwtToken = new JwtSecurityToken( _tokenManagement.Issuer, _tokenManagement.Audience, claims, expires: DateTime.Now.AddMinutes(_tokenManagement.AccessExpiration), signingCredentials: credentials ); token = new JwtSecurityTokenHandler().WriteToken(jwtToken); RedisHelper.Set(RedisPrefix.User_Login_Token_Key.GetKey(request.UserId), token, _tokenManagement.AccessExpiration * 60); return(true); }
public ActionResult RequestToken(DTOLoginRequest request) { if (_authService.IsAuthenticated(request, out string token)) { return(Ok("Bearer " + token)); } return(BadRequest("Invalid Request")); }
public HttpResponseMessage login([FromBody] DTOLoginRequest loginRequest) { DTOLoginResponse response = UserService.Login(loginRequest.loginName, loginRequest.password); return(Request.CreateResponse(HttpStatusCode.Created, response)); }