分布式会话与 JWT:无状态 Token 轮换与黑名单撤销的最佳实践
纯无状态的 JWT 存在一个致命缺陷:一旦签发,服务端无法提前主动撤销它(比如用户修改密码或被封禁)。
推荐的混合设计方案
- 双 Token 机制:
- Access Token:生命周期极短(如 15 分钟),携带必要声明,微服务间无状态校验;
- Refresh Token:存放在服务端数据库或 Redis 中,每次刷新时轮换(Token Rotation);
- 版本号(Token Version):在用户表存一个
token_version,修改密码或封禁时累加,让历史 Access Token 立即失效。
这样既保留了 JWT 的无状态扩展能力,又具备了强制下线的风控保障。