-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Dejan Milicic edited this page Jan 28, 2021
·
1 revision
Mock JWT token
public static class MockJwtTokens
{
public static string Issuer { get; } = Guid.NewGuid().ToString();
public static SecurityKey SecurityKey { get; }
public static SigningCredentials SigningCredentials { get; }
private static readonly JwtSecurityTokenHandler s_tokenHandler = new JwtSecurityTokenHandler();
private static readonly RandomNumberGenerator s_rng = RandomNumberGenerator.Create();
private static readonly byte[] s_key = new byte[32];
static MockJwtTokens()
{
s_rng.GetBytes(s_key);
SecurityKey = new SymmetricSecurityKey(s_key) { KeyId = Guid.NewGuid().ToString() };
SigningCredentials = new SigningCredentials(SecurityKey, SecurityAlgorithms.HmacSha256);
}
public static string GenerateJwtToken(IEnumerable<Claim> claims)
{
return s_tokenHandler.WriteToken(new JwtSecurityToken(Issuer, null, claims, null, DateTime.UtcNow.AddMinutes(20), SigningCredentials));
}
}