diff --git a/Admin.NET/Admin.NET.Core/Const/ClaimConst.cs b/Admin.NET/Admin.NET.Core/Const/ClaimConst.cs
index 7fdf85f3..e26054af 100644
--- a/Admin.NET/Admin.NET.Core/Const/ClaimConst.cs
+++ b/Admin.NET/Admin.NET.Core/Const/ClaimConst.cs
@@ -65,4 +65,9 @@ public class ClaimConst
/// 登录模式PC、APP
///
public const string LoginMode = "LoginMode";
+
+ ///
+ /// Token版本号
+ ///
+ public const string TokenVersion = "TokenVersion";
}
\ No newline at end of file
diff --git a/Admin.NET/Admin.NET.Core/Entity/SysUser.cs b/Admin.NET/Admin.NET.Core/Entity/SysUser.cs
index 0e03bc10..24508e94 100644
--- a/Admin.NET/Admin.NET.Core/Entity/SysUser.cs
+++ b/Admin.NET/Admin.NET.Core/Entity/SysUser.cs
@@ -313,6 +313,12 @@ public partial class SysUser : EntityTenant
[MaxLength(512)]
public string? Signature { get; set; }
+ ///
+ /// Token版本号
+ ///
+ [SugarColumn(ColumnDescription = "Token版本号")]
+ public int TokenVersion { get; set; } = 1;
+
///
/// 最新密码修改时间
///
diff --git a/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs b/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs
index a816273b..cf5463db 100644
--- a/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs
+++ b/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs
@@ -229,7 +229,7 @@ public class SysAuthService : IDynamicApiController, ITransient
{ ClaimConst.OrgId, user.OrgId },
{ ClaimConst.OrgName, user.SysOrg?.Name },
{ ClaimConst.OrgType, user.SysOrg?.Type },
- { ClaimConst.LoginMode, loginMode },
+ { ClaimConst.TokenVersion, user.TokenVersion },
}, tokenExpire);
// 生成刷新Token令牌
diff --git a/Admin.NET/Admin.NET.Web.Core/Handlers/JwtHandler.cs b/Admin.NET/Admin.NET.Web.Core/Handlers/JwtHandler.cs
index ffaf9a0b..b9e013aa 100644
--- a/Admin.NET/Admin.NET.Web.Core/Handlers/JwtHandler.cs
+++ b/Admin.NET/Admin.NET.Web.Core/Handlers/JwtHandler.cs
@@ -46,6 +46,8 @@ namespace Admin.NET.Web.Core
return;
}
+ // 验证Token版本号
+
var sysConfigService = serviceScope.ServiceProvider.GetRequiredService();
var tokenExpire = await sysConfigService.GetTokenExpire();
var refreshTokenExpire = await sysConfigService.GetRefreshTokenExpire();