You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JWT刷新令牌轮转中的令牌家族是什么?如何创建?

什么是JWT令牌家族及创建方式?

一、JWT令牌家族的定义

JWT令牌家族并非RFC 7519标准中定义的概念,而是令牌轮转机制下的业界实践术语。它指的是同一用户会话生命周期内,所有通过刷新操作生成的访问令牌(AC)和刷新令牌(RT)组成的关联集合。

简单来说,用户首次登录拿到的第一对AC+RT属于一个家族,之后每次用有效RT刷新得到的新AC+RT,都归属于同一个家族。当服务器检测到恶意RT(比如重复提交、疑似泄露的令牌)时,作废整个家族就能一次性 invalidate 所有关联的令牌,避免攻击者继续利用该会话下的任何令牌进行操作。

二、创建JWT令牌家族的核心步骤

1. 生成唯一家族标识

为每个新会话(用户首次登录)生成一个随机且唯一的family_id(比如UUID),将这个ID嵌入到该家族的每一个AC和RT的JWT自定义Claim中(比如用fam作为Claim键)。

2. 服务器端维护家族状态

不需要存储所有令牌内容,只需要在服务器端记录每个用户对应的当前有效家族ID以及家族的状态(有效/作废)。可以用Redis、内存数据库或关系型数据库存储,比如以用户ID为键,存储值为{ "active_family_id": "xxx", "expire_at": "xxx" }。

3. 令牌轮转时保持家族关联

当用户使用有效的RT请求刷新令牌时,生成的新AC和RT必须沿用原有的family_id,确保整个轮转链都属于同一个家族。

4. 家族作废与重建逻辑

当检测到异常场景(比如RT重复使用、令牌不在有效家族列表中),立即将对应的family_id标记为作废。后续所有携带该ID的AC或RT,在验证阶段都会被直接拒绝。同时为用户生成新的family_id,并返回新的AC+RT令牌对,开启一个新的令牌家族。

内容的提问来源于stack exchange,提问作者Guerino Rodella

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 06:14:52