滑动续期与自动刷新:
Web:访问令牌 10 分钟;活跃时自动轮换刷新令牌;连续无操作 30 分钟后清除登录并跳转登录页。 App:会话窗口 3 天;打开 App、恢复前台或请求接口时自动刷新并重新顺延 3 天。 普通登录和 SSO 使用同一策略。 刷新令牌只以 SHA-256 摘要入库,每次刷新都会轮换,旧令牌无法再次使用;退出登录会吊销刷新令牌。 网络临时故障不会误清登录状态,多标签页同时刷新也做了竞争处理。
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
namespace Jiaowu.Api.Domain.Identity;
|
||||
|
||||
public enum AuthenticationClientType
|
||||
{
|
||||
Web = 0,
|
||||
App = 1
|
||||
}
|
||||
|
||||
public sealed class RefreshSession
|
||||
{
|
||||
public Guid Id { get; set; } = Guid.NewGuid();
|
||||
public Guid UserId { get; set; }
|
||||
public ApplicationUser? User { get; set; }
|
||||
public required string TokenHash { get; set; }
|
||||
public AuthenticationClientType ClientType { get; set; }
|
||||
public required string SecurityStamp { get; set; }
|
||||
public DateTime ExpiresAt { get; set; }
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime LastRefreshedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime? RevokedAt { get; set; }
|
||||
public Guid? ReplacedBySessionId { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user