public string Generate(IEnumerable <Claim> claims) { var credentials = new SigningCredentials(options.GetSecurityKey(), SecurityAlgorithms.HmacSha256); var expiry = DateTime.Now.Add(options.GetExpiry()); var token = new JwtSecurityToken( options.Issuer, options.Issuer, claims, expires: expiry, signingCredentials: credentials ); return(tokenHandler.WriteToken(token)); }
public async Task<IActionResult> Login([FromBody] LoginRequest model) { User user = await userManager.FindByNameAsync(model.UserName); if (user != null) { if (await userManager.CheckPasswordAsync(user, model.Password)) { DateTime now = DateTime.Now; if (user.LastSignedAt == null || user.LastSignedAt < now) { user.LastSignedAt = now; await userManager.UpdateAsync(user); } var claims = new[] { new Claim(ClaimTypes.Name, user.UserName), new Claim(ClaimTypes.NameIdentifier, user.Id) }; var credentials = new SigningCredentials(configuration.GetSecurityKey(), SecurityAlgorithms.HmacSha256); var expiry = DateTime.Now.Add(configuration.GetExpiry()); var token = new JwtSecurityToken( configuration.Issuer, configuration.Issuer, claims, expires: expiry, signingCredentials: credentials ); var response = new LoginResponse() { Token = tokenHandler.WriteToken(token) }; return Content(json.Serialize(response), "text/json"); } } return BadRequest(); }
private IActionResult CreateJwtToken(User user, bool isReadOnly = false) { var claims = new List <Claim>() { new Claim(ClaimTypes.Name, user.UserName), new Claim(ClaimTypes.NameIdentifier, user.Id) }; claims.IsReadOnly(isReadOnly); var credentials = new SigningCredentials(jwtOptions.GetSecurityKey(), SecurityAlgorithms.HmacSha256); var expiry = DateTime.Now.Add(jwtOptions.GetExpiry()); var token = new JwtSecurityToken( jwtOptions.Issuer, jwtOptions.Issuer, claims, expires: expiry, signingCredentials: credentials ); return(Ok(new LoginResponse(tokenHandler.WriteToken(token)))); }
public async Task <IActionResult> Login([FromBody] LoginRequest model) { ApplicationUser user = await userManager.FindByNameAsync(model.UserName); if (user != null) { if (await userManager.CheckPasswordAsync(user, model.Password)) { var claims = new[] { new Claim(ClaimTypes.Name, user.UserName), new Claim(ClaimTypes.NameIdentifier, user.Id) }; var credentials = new SigningCredentials(configuration.GetSecurityKey(), SecurityAlgorithms.HmacSha256); var expiry = DateTime.Now.Add(configuration.GetExpiry()); var token = new JwtSecurityToken( configuration.Issuer, configuration.Issuer, claims, expires: expiry, signingCredentials: credentials ); var response = new LoginResponse() { Token = tokenHandler.WriteToken(token) }; return(Ok(response)); } } return(BadRequest()); }