DelphiniumVC
42 строки · 1.3 Кб
1using System.IdentityModel.Tokens.Jwt;2using System.Security.Claims;3using System.Text;4using Domain;5using Microsoft.IdentityModel.Tokens;6
7namespace API.Services8{
9public class TokenService10{11private readonly IConfiguration _config;12public TokenService(IConfiguration config)13{14_config = config;15}16public string CreateToken(AppUser user)17{18var claims = new List<Claim>19{20new Claim(ClaimTypes.Name, user.UserName),21new Claim(ClaimTypes.NameIdentifier, user.Id),22new Claim(ClaimTypes.Email, user.Email),23};24
25var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["TokenKey"]));26var creds = new SigningCredentials(key, SecurityAlgorithms.Aes128CbcHmacSha256);27
28var tokenDescriptor = new SecurityTokenDescriptor29{30Subject = new ClaimsIdentity(claims),31Expires = DateTime.UtcNow.AddDays(7),32SigningCredentials = creds33};34
35var tokenHandler = new JwtSecurityTokenHandler();36
37var token = tokenHandler.CreateToken(tokenDescriptor);38
39return tokenHandler.WriteToken(token);40}41}42}