add(refreshTokenService):完善刷新令牌服务

This commit is contained in:
2025-11-16 10:55:26 +08:00
12 changed files with 634 additions and 160 deletions
@@ -0,0 +1,21 @@
using System.Security.Claims;
namespace IM_API.Interface.Services
{
public interface IJWTService
{
/// <summary>
/// 生成用户凭证
/// </summary>
/// <param name="claims">负载</param>
/// <param name="expiresAt">过期时间</param>
/// <returns></returns>
string GenerateAccessToken(IEnumerable<Claim> claims, DateTime expiresAt);
/// <summary>
/// 创建用户凭证
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
(string token, DateTime expiresAt) CreateAccessTokenForUser(int userId,string username,string role);
}
}
@@ -0,0 +1,27 @@
namespace IM_API.Interface.Services
{
public interface IRefreshTokenService
{
/// <summary>
/// 创建刷新令牌
/// </summary>
/// <param name="userId"></param>
/// <param name="ct"></param>
/// <returns></returns>
Task<string> CreateRefreshTokenAsync(int userId, CancellationToken ct = default);
/// <summary>
/// 验证刷新令牌
/// </summary>
/// <param name="token">刷新令牌</param>
/// <param name="ct"></param>
/// <returns></returns>
Task<(bool ok, int userId)> ValidateRefreshTokenAsync(string token, CancellationToken ct = default);
/// <summary>
/// 删除更新令牌
/// </summary>
/// <param name="token">刷新令牌</param>
/// <param name="ct"></param>
/// <returns></returns>
Task RevokeRefreshTokenAsync(string token, CancellationToken ct = default);
}
}