50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
using System.Security.Claims;
|
|
using StopShopping.Services.Models;
|
|
using StopShopping.Services.Models.Resp;
|
|
|
|
namespace StopShopping.Services;
|
|
|
|
/// <summary>
|
|
/// 访问令牌服务
|
|
/// </summary>
|
|
public interface IAccessTokenService
|
|
{
|
|
/// <summary>
|
|
/// 生成访问令牌
|
|
/// </summary>
|
|
/// <param name="claims"></param>
|
|
/// <returns></returns>
|
|
AccessToken GenerateAccessToken(ClaimsIdentity claims);
|
|
/// <summary>
|
|
/// 生成访问令牌
|
|
/// </summary>
|
|
/// <param name="refreshToken"></param>
|
|
/// <returns></returns>
|
|
Task<AccessToken?> GenerateAccessTokenAsync(string refreshToken);
|
|
/// <summary>
|
|
/// 添加访问令牌到黑名单
|
|
/// </summary>
|
|
/// <param name="accessToken"></param>
|
|
/// <returns></returns>
|
|
Task<bool> AddAccessTokenBlacklistAsync(string accessToken);
|
|
/// <summary>
|
|
/// 访问令牌是否在黑名单中
|
|
/// </summary>
|
|
/// <param name="accessToken"></param>
|
|
/// <returns></returns>
|
|
Task<bool> IsAccessTokenBlacklistAsync(string accessToken);
|
|
/// <summary>
|
|
/// 生成刷新令牌
|
|
/// </summary>
|
|
/// <param name="userId">管理员/用户id</param>
|
|
/// <param name="systemRole"></param>
|
|
/// <returns></returns>
|
|
Task<AccessToken> SetRefreshTokenAsync(int userId, SystemRoles systemRole);
|
|
/// <summary>
|
|
/// 回收刷新令牌
|
|
/// </summary>
|
|
/// <param name="refreshToken"></param>
|
|
/// <returns></returns>
|
|
Task RevokeRefreshTokenAsync(string refreshToken);
|
|
}
|