track/src/TrackCenter.Api/JWTEncryption.cs

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
};
}
}