计算机网络相关

JWT令牌泄露,如何让其失效?

因为 JWT 是无状态的 ,天生一旦签发出去,除非过期时间到了,否则服务器是无法单方面让它失效 的。

所以,所谓"旧的 JWT 令牌失效",一般要靠一些额外机制。


1. JWT 本身的问题

  • 无状态:JWT 验证只依赖签名和过期时间,服务器不保存会话。
  • 后果:一旦签发,JWT 在有效期内都能被用来访问,除非服务器主动检查并拒绝它。

2. 让旧 JWT 失效的常见做法

方法 1:缩短 JWT 的有效期 + Refresh Token

  • 设计方式:

    • Access Token(JWT):有效期很短(几分钟到几十分钟)。
    • Refresh Token(通常存数据库):有效期较长(几天/几周),用于申请新 JWT。
  • 好处:

    • 如果 JWT 泄露,攻击者最多能用短时间。
    • 服务端只要能废掉 Refresh Token(比如检测异常行为、用户注销),旧 JWT 很快就自然失效。

方法 2:黑名单 / 撤销列表

  • 在服务器维护一个 黑名单 ,存放已撤销的 JWT(通常存 jti 字段或整个 token)。
  • 验证请求时,除了校验签名,还要查询黑名单。
  • 缺点:失去了 JWT 的"纯无状态"优势,要额外存储和查询。

方法 3:令牌版本号(Token Versioning)

  • 在用户数据库里存一个 token_version 字段。

  • 签发 JWT 时,把 token_version 写进 payload。

  • 验证时对比数据库中的 token_version:

    • 如果用户被强制登出或令牌被刷新,就把数据库的 token_version +1。
    • 旧 JWT 的 token_version 就和数据库不一致,立刻失效。
  • 优点:不需要存储所有旧 token,只需要一个版本号。


方法 4:重置密钥

  • 如果极端情况下需要让所有现有 JWT 失效,可以直接更换签名密钥(secret / private key)。
  • 所有旧 token 因签名不匹配而失效。
  • 缺点:会影响所有用户。

3. 总结

旧 JWT 不会自己失效,必须靠额外机制。常见策略:

  • 短期 Access Token + 长期 Refresh Token(最常用)。
  • 黑名单(适合高安全要求系统)。
  • 版本号机制(高效且常见)。
相关推荐
2501_9151063218 小时前
跨平台抓包工具怎么选?TraceEagle抓包鹰 的四种跨平台能力
网络协议·计算机网络·网络安全·ios·adb·https·udp
流浪0011 天前
计算机网络篇7:传输层——TCP 网络编程常用接口与调用流程
网络协议·tcp/ip·计算机网络·listen·tcp接口
sbjdhjd2 天前
从 VLAN 到 MSTP 的交换网络入门
网络·计算机网络·mac·ip·stp·vlan·交换机
坐看风云变幻2 天前
《系统架构师成长之路》第 3 期|计算机网络:TCP 三次握手与可靠传输
tcp/ip·计算机网络·系统架构
CS_Zero4 天前
计算机网络通信基础2:带宽和吞吐量、客户端和服务器、网络基础设施
网络·计算机网络
库玛西4 天前
计算机网络第三章:数据链路层
服务器·网络·计算机网络·考研·算法·面试
lazy H5 天前
【计算机网络】第 2 篇:一条数据如何穿过网络?彻底理解数据封装与解封装
网络·经验分享·后端·学习·计算机网络
2501_915909065 天前
抓包工具断点拦截是什么?如何半路拦截修改 HTTP 请求
网络协议·计算机网络·网络安全·adb·https·udp
搞科研的小刘选手5 天前
【见刊检索快 | 重庆线上线下同步】第五届信号处理、计算机网络与通信国际学术会议(SPCNC 2026)
计算机网络·信号处理·通信·学术会议·会议推荐·重庆