public IActionResult RefreshToken(string refreshToken) { return(Token(new LoginDto() { Password = "******", UserName = "******" })); UserService service = new UserService(); SecurityToken validatedToken; var claimsPrincipal = JwtTokenUtil.Decode(refreshToken, _jwtSettings, out validatedToken); //判断使用的是不是refreshtoken if (claimsPrincipal != null && claimsPrincipal.HasClaim(a => a.Type == "tokenType")) { //根据claim中的id再次从数据库找到user 使用最新的user信息重新签发token var userId = claimsPrincipal.Claims.First(a => a.Type == ClaimTypes.Sid).Value; var user = service.GetUser(Convert.ToInt64(userId)); //重新签发token和refreshtoken List <Claim> claims = new ClaimUser(user).GetClaims(); //签发token var token = JwtTokenUtil.Encode(claims, _jwtSettings); //签发refreshtoken claims.Add(new Claim("tokenType", "refresh")); var refreshtoken = JwtTokenUtil.Encode(claims, _jwtSettings); return(Ok(new { token, refreshtoken })); } //如果refreshtoken 失效了 说明该用户已经一个月没有和你的应用交互了 所以设置为未授权让其重新登录 return(Unauthorized()); }
public IActionResult Token(string username, string password) { List <Claim> claims = new List <Claim>(); var token = JwtTokenUtil.Encode(claims, _jwtSettings); claims.Add(new Claim("tokenType", "refresh")); var refreshToken = JwtTokenUtil.Encode(claims, _jwtSettings); return(Ok(new { token, refreshToken })); }
public IActionResult Token(string username, string password) { UserService service = new UserService(); var claimUser = service.Login(username, password); List <Claim> claims = claimUser.GetClaims(); //签发token var token = JwtTokenUtil.Encode(claims, _jwtSettings); //签发refreshtoken claims.Add(new Claim("tokenType", "refresh")); var refreshToken = JwtTokenUtil.Encode(claims, _jwtSettings); return(Ok(new { token, refreshToken })); }
//[CaptchaValidate] public IActionResult Token(LoginDto dto) { try { //return Ok(new { status = 0}); //UserService service = new UserService(); ClaimUser claimUser = null; if (dto.UserName == "admin" && dto.Password == "123") { claimUser = new ClaimUser(new User() { UserId = 1, UserName = "******", Password = "******", NickName = "songlin" }); } //var claimUser = service.Login(dto.UserName, dto.Password); if (claimUser == null) { //string clientId = HttpContext.Request.Cookies["clientId"]; //string code = ValidateCode.GetCode(clientId); return(Ok(new { code = 1, msg = "用户名或者密码错误" })); } List <Claim> claims = claimUser.GetClaims(); //签发token var token = JwtTokenUtil.Encode(claims, _jwtSettings); //签发refreshtoken claims.Add(new Claim("tokenType", "refresh")); var refreshToken = JwtTokenUtil.Encode(claims, _jwtSettings); return(Ok(new { code = 0, data = new { token, refreshToken, _jwtSettings.Expires, type = "Bear" } })); } catch (Exception ex) { Common.LogHelper.Error("Error", ex); return(Ok(new { code = 1, msg = ex.Message })); } }
//[CaptchaValidate] public IActionResult Token(string username, string password) { try { //return Ok(new { status = 0}); UserService service = new UserService(); var claimUser = service.Login(username, password); if (claimUser == null) { //string clientId = HttpContext.Request.Cookies["clientId"]; //string code = ValidateCode.GetCode(clientId); return(Ok(new { status = 1, message = "用户名或者密码错误", //data = new { code } })); } List <Claim> claims = claimUser.GetClaims(); //签发token var token = JwtTokenUtil.Encode(claims, _jwtSettings); //签发refreshtoken claims.Add(new Claim("tokenType", "refresh")); var refreshToken = JwtTokenUtil.Encode(claims, _jwtSettings); return(Ok(new { status = 0, token, refreshToken })); } catch (Exception ex) { Common.LogHelper.Error("Error", ex); return(Ok(new { status = 1, message = ex.Message })); } }
public string Protect(AuthenticationTicket data, string purpose) { return(JwtTokenUtil.Encode(data.Principal.Claims, _jwtSettings)); }