Skip to content

Instantly share code, notes, and snippets.

@xximjasonxx
Created March 10, 2021 01:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xximjasonxx/bed427f1e909b17c08ecf507027f0fcc to your computer and use it in GitHub Desktop.
Save xximjasonxx/bed427f1e909b17c08ecf507027f0fcc to your computer and use it in GitHub Desktop.
public class JwtSecurityTokenValidator : ISecurityTokenValidator
{
private readonly IConfiguration _configuration;
private readonly KeyVaultService _keyVaultService;
public JwtSecurityTokenValidator(IConfiguration configuration, KeyVaultService keyVaultService)
{
_configuration = configuration;
_keyVaultService = keyVaultService;
}
public bool CanReadToken(string securityToken)
{
return true;
}
public ClaimsPrincipal ValidateToken(string securityToken, TokenValidationParameters validationParameters, out SecurityToken validatedToken)
{
var signingKey = _keyVaultService.GetJwtSigningKey().Result;
var securityKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(signingKey));
var tokenHandler = new JwtSecurityTokenHandler();
return tokenHandler.ValidateToken(securityToken, new TokenValidationParameters()
{
ValidateIssuerSigningKey = true,
ValidateIssuer = true,
ValidateAudience = true,
ValidIssuer = _configuration["Issuer"],
ValidAudience = _configuration["Audience"],
IssuerSigningKey = securityKey
}, out validatedToken);
}
public bool CanValidateToken => true;
public int MaximumTokenSizeInBytes { get; set; }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment