Advertisement
otkalce

JWT token provider

Apr 7th, 2024
1,045
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.36 KB | Source Code | 0 0
  1. public class JwtTokenProvider
  2. {
  3.     public static string CreateToken(string secureKey, int expiration, string subject = null, string role = null)
  4.     {
  5.         // Get secret key bytes
  6.         var tokenKey = Encoding.UTF8.GetBytes(secureKey);
  7.  
  8.         // Create a token descriptor (represents a token, kind of a "template" for token)
  9.         var tokenDescriptor = new SecurityTokenDescriptor
  10.         {
  11.             Expires = DateTime.UtcNow.AddMinutes(expiration),
  12.             SigningCredentials = new SigningCredentials(
  13.                 new SymmetricSecurityKey(tokenKey),
  14.                 SecurityAlgorithms.HmacSha256Signature)
  15.         };
  16.  
  17.         if (!string.IsNullOrEmpty(subject))
  18.         {
  19.             tokenDescriptor.Subject = new ClaimsIdentity(new System.Security.Claims.Claim[]
  20.             {
  21.                 new System.Security.Claims.Claim(ClaimTypes.Name, subject),
  22.                 new System.Security.Claims.Claim(JwtRegisteredClaimNames.Sub, subject),
  23.                 new System.Security.Claims.Claim(ClaimTypes.Role, role),
  24.             });
  25.         }
  26.  
  27.         // Create token using that descriptor, serialize it and return it
  28.         var tokenHandler = new JwtSecurityTokenHandler();
  29.         var token = tokenHandler.CreateToken(tokenDescriptor);
  30.         var serializedToken = tokenHandler.WriteToken(token);
  31.  
  32.         return serializedToken;
  33.     }
  34. }
  35.  
Tags: jwt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement