36 lines
845 B
C#

using System.Security.Claims;
using AmtScanner.Api.Models;
namespace AmtScanner.Api.Services;
/// <summary>
/// JWT 服务接口
/// </summary>
public interface IJwtService
{
/// <summary>
/// 生成 Access Token
/// </summary>
string GenerateAccessToken(User user, IEnumerable<string> roles);
/// <summary>
/// 生成 Refresh Token
/// </summary>
string GenerateRefreshToken();
/// <summary>
/// 验证 Token 并返回 ClaimsPrincipal
/// </summary>
ClaimsPrincipal? ValidateToken(string token);
/// <summary>
/// 从过期的 Token 中获取 ClaimsPrincipal
/// </summary>
ClaimsPrincipal? GetPrincipalFromExpiredToken(string token);
/// <summary>
/// 获取 Refresh Token 过期时间
/// </summary>
DateTime GetRefreshTokenExpiryTime();
}