public string Encode(Models.JwtPayload payload) { var whatIsThis = Signature(); var jwt = new JsonWebToken <Models.JwtPayload>(payload, Signature()); return(jwt.ToEncodedString()); }
/// <summary> /// ref https://jasonwatmore.com/post/2019/10/11/aspnet-core-3-jwt-authentication-tutorial-with-example-api /// </summary> /// <param name="payload"></param> /// <returns></returns> public string EncodeConst(Models.JwtPayload payload) { var claims = new[] { new Claim(JwtRegisteredClaimNames.Nbf, $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"), new Claim(JwtRegisteredClaimNames.Exp, $"{new DateTimeOffset(DateTime.Now.AddMinutes(30)).ToUnixTimeSeconds()}"), new Claim(ClaimTypes.Name, payload.aud) }; var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(Const.SecurityKey); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, payload.aud) }), Expires = DateTime.UtcNow.AddDays(7), Issuer = payload.iss, Audience = payload.aud, SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }
public ActionResult <string> Login(string userId, string pwd) { if (!string.IsNullOrEmpty(userId) && !string.IsNullOrEmpty(pwd)) { //var claims = new[] //{ // new Claim(JwtRegisteredClaimNames.Nbf,$"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"), // new Claim(JwtRegisteredClaimNames.Exp,$"{new DateTimeOffset(DateTime.Now.AddMinutes(30)).ToUnixTimeSeconds()}"), // new Claim(ClaimTypes.Name,userId) //}; Models.JwtPayload jwtPayload = new Models.JwtPayload { aud = "Yang", claimA = "to be world value", exp = $"{new DateTimeOffset(DateTime.Now.AddMinutes(30)).ToUnixTimeSeconds()}", nbf = $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}", iat = $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}", iss = "Yang", sub = "login" }; return(StatusCode(StatusCodes.Status201Created, new { token = _jwtService.EncodeConst(jwtPayload) })); } return(StatusCode(StatusCodes.Status400BadRequest, "userId or pwd is invalid.")); }