31 lines
965 B
C#
31 lines
965 B
C#
using System.Text;
|
|
using Microsoft.IdentityModel.Tokens;
|
|
|
|
namespace TrackCenter.Api;
|
|
|
|
public class JWTEncryption
|
|
{
|
|
/// <summary>生成Token验证参数</summary>
|
|
/// <param name="jwtSettings"></param>
|
|
/// <returns></returns>
|
|
public static TokenValidationParameters CreateTokenValidationParameters(
|
|
JWTSettingsOptions jwtSettings)
|
|
{
|
|
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.SecretKey));
|
|
|
|
return new TokenValidationParameters()
|
|
{
|
|
ValidateIssuer = true,
|
|
ValidateAudience = true,
|
|
ValidateLifetime = true,
|
|
ValidateIssuerSigningKey = true,
|
|
ValidIssuer = jwtSettings.Issuer,
|
|
ValidAudience = jwtSettings.Audience,
|
|
IssuerSigningKey = key,
|
|
ClockSkew = TimeSpan.FromSeconds(jwtSettings.ClockSkewMinutes),
|
|
// 验证过期时间
|
|
RequireExpirationTime = true
|
|
};
|
|
}
|
|
}
|