一 、背景与核心问题 在分布式系统中,令牌续期不是把过期时间重置这么简单,而是需要在安全性、用户体验与系统性能之间取得平衡。常见痛点包括: 旧令牌在有效期内仍可使用,形成安
一 、背景与核心问题在分布式系统中,令牌续期不是“把过期时间重置”这么简单,而是需要在安全性、用户体验与系统性能之间取得平衡。常见痛点包括:
续期策略设计需优先回答三个问题:
二、先给结论:几种方案对比表
三、不同方案与代码实现3.1 单Token基础版
3.2 单Token方案(黑名单优化)思路:仅使用Access Token,续期时签发新令牌,并将旧令牌加入黑名单,黑名单 TTL 略大于令牌 TTL,避免并发刷新导致旧令牌仍可用。 适用:内部低风险系统、短期活动页、快速原型。 要点:
3.3 双Token方案(基础版)思路:登录签发Access Token(短期)与Refresh Token(长期);Access 过期后,用 Refresh 换取新 Access。Refresh 存于服务端(如 Redis),便于撤销与管控。
3.4 双Token方案(安全增强:三验证 + 并发控制)思路:在基础版上增加:
要点:
3.5 自动续期方案(滑动窗口 + 网关/中间件)思路:在网关/中间件或业务拦截器中检测令牌剩余有效期,低于阈值时签发新令牌并通过响应头返回,客户端无感替换。
3.6 分布式环境增强(多设备与会话管理)思路:以用户+设备维度维护最新令牌,登录时使旧令牌失效(黑名单或缓存淘汰);跨服务通过本地快速校验 + 认证中心兜底提升性能与一致性。
四、 选型建议
要点:
|
2022-04-23
2023-04-23
2024-04-08
2024-11-15
2022-10-16