在线工具集

JWT 解码完整指南:结构、claims、安全实践

JSON Web Token 是现代 Web 鉴权事实标准。本指南讲清楚 JWT 的三段结构、常用 claims、安全风险与最佳实践。

📅 更新于 2026-04-28 · ⏱ 约 4 分钟阅读 · → 立即使用 JWT 解码

JWT(JSON Web Token)是一种紧凑的、URL 安全的令牌格式,常用于 API 鉴权、单点登录(SSO)、信息交换。本指南从结构入手,讲清楚每段的含义、常见 claim 字段、何时该用 JWT、以及最容易出的安全问题。

JWT 的三段结构

JWT 由 header.payload.signature 三段组成,每段是 Base64URL 编码:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.SflKxw...
  • Header:算法(HS256、RS256...)+ 类型
  • Payload:实际数据(claims)
  • Signature:用 secret 对前两段签名的结果

本工具粘贴 token 自动分别显示三段,并把 payload 中的时间字段(iat/exp/nbf)转为可读时间。

常用 Claims(声明)

  • iss Issuer 签发者(如 https://api.example.com)
  • sub Subject 主题(通常是用户 ID)
  • aud Audience 受众(哪个服务可用)
  • exp Expiration 过期时间(Unix 秒)
  • nbf Not Before 生效时间
  • iat Issued At 签发时间
  • jti JWT ID(防重放)

业务自定义 claim 也可以放,如 nameroletenantId

解码 ≠ 验签

Header 和 Payload 是 Base64 编码的明文,不需要密钥即可读取。本工具就是只解码不验签。

服务端必须用 secret/公钥验证签名才能信任 token 内容。验签失败就拒绝,否则 JWT 就成了废纸。

安全启示:敏感信息不要放 payload,因为客户端能看到。

过期与刷新

  • exp 决定过期时间,常见 15 分钟到 24 小时
  • 短期 access token + 长期 refresh token 是行业最佳实践
  • 客户端在 access token 过期前用 refresh token 换新 token
  • refresh token 应只在受保护接口使用,可吊销(数据库黑名单)

常见安全坑

  • alg=none 攻击:旧库允许 alg 设为 none 跳过验签。生产中必须强制指定算法
  • 密钥太弱:HS256 至少 256 位密钥;生产推荐 RS256(非对称,私钥仅服务端)
  • 不验 exp:忘记检查过期,token 永远有效
  • payload 含敏感数据:客户端能 base64 解码读到,密码绝不能放
  • 太长:JWT 越长 cookie/header 越大,影响每次请求

常见问题

JWT vs Session 怎么选?

JWT 无状态、易横向扩展,但难撤销;Session 易撤销但需要后端存储。短期 token 用 JWT,长期会话用 Session 更灵活。

能在浏览器存 JWT 吗?

可以但要注意:localStorage 易遭 XSS;HttpOnly Cookie 安全但要防 CSRF。综合推荐 HttpOnly Cookie + SameSite=Strict + CSRF token。

什么时候用 RS256 而不是 HS256?

微服务架构下:签发者持私钥,多个验证方持公钥,避免共享 secret。