· 6 years ago · Aug 07, 2019, 10:26 AM
1private JwtSecurityToken GenerateToken(UserModel user)
2 {
3 var jwtConfig = _appSettings.Value.JwtConfig;
4
5 var claims = new List<Claim>
6 {
7 new Claim("UserId", user.Id.ToString()),
8 new Claim(ClaimTypes.SerialNumber, user.PersonalNumber ?? string.Empty),
9 new Claim("Email", user.Email ?? string.Empty),
10 new Claim(ClaimTypes.Name, user.FullName ?? string.Empty),
11 new Claim(ClaimTypes.Role, user.Role.ToString())
12
13 };
14
15 var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtConfig.SigningKey));
16
17 var token = new JwtSecurityToken(
18 issuer: jwtConfig.Issuer,
19 audience: jwtConfig.Audience,
20 expires: DateTime.UtcNow.AddSeconds(jwtConfig.ExpireSeconds),
21 signingCredentials: new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256),
22 claims: claims
23 );
24
25 return token;
26 }