24 lines
726 B
C#
24 lines
726 B
C#
using Microsoft.IdentityModel.Tokens;
|
|
using System.IdentityModel.Tokens.Jwt;
|
|
using System.Security.Claims;
|
|
using System.Security.Cryptography;
|
|
|
|
namespace EnvelopeGenerator.Application.Contracts
|
|
{
|
|
public interface IJWTService<TClaimValue>
|
|
{
|
|
public static SymmetricSecurityKey GenerateSecurityKey(int byteSize = 32)
|
|
{
|
|
using var rng = RandomNumberGenerator.Create();
|
|
var randomBytes = new byte[byteSize];
|
|
rng.GetBytes(randomBytes);
|
|
var securityKey = new SymmetricSecurityKey(randomBytes);
|
|
|
|
return securityKey;
|
|
}
|
|
|
|
string GenerateToken(TClaimValue claimValue);
|
|
|
|
JwtSecurityToken? ReadSecurityToken(string token);
|
|
}
|
|
} |