40 lines
843 B
C#
40 lines
843 B
C#
using System.Security.Claims;
|
||
|
||
namespace MAX.Framework.Security;
|
||
|
||
/// <summary>
|
||
/// 令牌生成结果
|
||
/// </summary>
|
||
public class TokenResult
|
||
{
|
||
/// <summary>
|
||
/// 令牌类型(Bearer)
|
||
/// </summary>
|
||
public string TokenType { get; set; } = "Bearer";
|
||
|
||
/// <summary>
|
||
/// 访问令牌
|
||
/// </summary>
|
||
public string Token { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 有效时间(分钟)
|
||
/// </summary>
|
||
public uint ExpiresInMinutes { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// JWT 令牌服务:生成与校验访问令牌。
|
||
/// </summary>
|
||
public interface ITokenService
|
||
{
|
||
/// <summary>
|
||
/// 根据声明集合生成访问令牌
|
||
/// </summary>
|
||
TokenResult CreateToken(IEnumerable<Claim> claims);
|
||
|
||
/// <summary>
|
||
/// 校验令牌,校验失败返回 null
|
||
/// </summary>
|
||
Task<ClaimsPrincipal?> ValidateTokenAsync(string token);
|
||
} |