什么是 JWT

JWT(JSON Web Token)是当今 Web 和移动端最通用的身份认证方案。它是服务端签发的一串字符串,客户端在每次请求时带上它,服务端就能识别"你是谁"而无需每次查数据库。一个典型的 JWT 长这样:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IuW8oOS4iSIsInJvbGUiOiJhZG1pbiIsImV4cCI6MTc1MTIzNDU2N30.abc123def456_thisIsSignature

把它拆开看,是用两个点号(.)连接的三段信息:

① Header(头部):eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
→ 解码后:{"alg":"HS256","typ":"JWT"}

② Payload(载荷):eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IuW8oOS4iSIsInJvbGUiOiJhZG1pbiIsImV4cCI6MTc1MTIzNDU2N30
→ 解码后:{"sub":"1234567890","name":"张三","role":"admin","exp":1751234567}

③ Signature(签名):abc123def456_thisIsSignature
→ 用密钥 + 算法对前两部分计算得出,用于防篡改

关键点:前两段只是 Base64URL 编码,不是加密,任何人都可以解码阅读。这就是为什么在线解码工具不需要密钥就能解析 Token 内容。签名段才是安全的保障——用密钥生成的哈希值确保数据未被篡改。

在线解码 JWT 的步骤

  1. 从浏览器开发者工具(Application > Local Storage 或 Network > Request Headers > Authorization)或接口返回中复制 JWT Token。
  2. 打开 JWT 解码工具,把 Token 粘贴到输入框中。
  3. 工具自动分段显示 Header 和 Payload 的 JSON 内容,并用颜色高亮各字段。
  4. 查看 exp(过期时间)、iat(签发时间)等关键字段,判断 Token 是否仍有效。

整个过程在浏览器本地完成,Token 不会被发送到任何服务器。

核心功能一览

自动分段解析

粘贴即自动拆分 Header / Payload / Signature 三段,分别解码显示。

时间戳友好显示

自动识别 exp、iat、nbf 等时间字段,同步显示可读的日期时间。

过期状态检测

对比当前时间与 exp 字段,直观提示 Token 是否已过期。

纯本地运行

基于浏览器原生 Base64URL 解码,Token 绝不上传,安全可靠。

JWT 解码 vs 验证:核心区别

维度解码(Decode)验证(Verify)
操作内容Base64URL 解码 → 可读 JSON用密钥校验签名是否匹配
是否需要密钥不需要需要对称密钥或公钥
能判断什么查看内容、角色、过期时间确认 Token 未被篡改
在哪里做浏览器、任意在线工具后端服务、API 网关

常见应用场景

  • 前后端联调:快速查看 Token 中包含的用户 ID、角色、权限等信息,确认后端签发正确。
  • 排查登录过期:解码查看 exp 字段,判断是 Token 真过期还是刷新逻辑有 bug。
  • 接口调试:从 Network 面板复制 Authorization 头中的 Bearer Token,解析后核对载荷字段。
  • 学习 JWT 原理:直观看到 Header 中的算法声明和 Payload 中的标准字段,理解 OAuth/SSO 的底层机制。
  • 第三方对接:对接微信、支付宝等平台时,解码对方返回的 Token 确认返回字段。

常见问题 FAQ

JWT Token 的三段分别是什么?

JWT 由三个 Base64URL 编码的部分组成,用点号分隔:Header(头部,含算法类型如 HS256/RS256)、Payload(载荷,含业务字段如用户 ID、角色、过期时间)、Signature(签名,用于防篡改验证)。前两段可以直接解码阅读,签名用来确保数据未被修改。

JWT 在线解码会上传我的 Token 吗?

不会。速工具 的 JWT 解码工具完全在浏览器本地运行,Token 不会被发送到任何服务器。解码仅对 Token 做 Base64URL 解析,不涉及密钥,即使 Token 包含敏感信息也不会泄露。

JWT 显示已过期怎么办?

JWT 的载荷中有一个 exp(过期时间)字段,是一个 Unix 时间戳。解码后可以查看这个时间戳并转换为日期来判断是否真的过期。如果确实过期,需要调用后端的 /refresh 接口获取新 Token,或引导用户重新登录获取新凭据。

JWT 解码和验证有什么区别?

解码只是把 Base64URL 编码的字符串还原为可读 JSON,不需要密钥,任何人都可以做;验证还需要用密钥(对称密钥或服务端公钥)校验签名是否正确,确保 Token 没有被篡改。在线工具通常只做解码,验证应该在服务端或使用 jsonwebtoken 等库完成。