JWT 在线解码工具

本地解析 JWT 的 Header / Payload / Signature,快速查看过期时间与声明内容。

JWT(通常由三段构成:`header.payload.signature`) 是 JSON Web Tokens 的缩写,是目前常用的跨域认证解决方案, 也是一个开放标准(RFC 7519),用于在各方之间以 JSON 对象安全传输信息。

JWT 包含认证信息,请妥善保管!本工具不记录和存储你的 JWT 信息, 所有验证和调试都在客户端本地完成。

等待输入 JWT Token
解码结果

Header

Payload

Signature(签名)

功能使用

1. 粘贴 JWT 字符串(通常由三段构成:`header.payload.signature`)。

2. 点击“开始解码”,即可查看 Header、Payload 和 Signature。

3. 若 Payload 含 `exp / iat / nbf`,会自动展示时间信息与有效状态。

4. 点击“复制结果”可复制当前解码内容,便于排查登录和鉴权问题。

JWT 详解

JWT(JSON Web Token)是一种基于 JSON 的令牌标准,常用于登录后身份传递。 其核心优势是“无状态认证”:服务端无需存会话,也能通过验签识别用户身份。

JWT 由三部分组成:Header(算法信息)、Payload(业务声明)和 Signature(签名)。 其中 Signature 用于防篡改,任何对 Header/Payload 的修改都会导致验签失败。

Payload 中常见的官方字段(可按需选用)包括:

  • `iss (Issuer)`:签发者
  • `sub (Subject)`:主题
  • `aud (Audience)`:接收者
  • `exp (Expiration time)`:过期时间
  • `nbf (Not Before)`:生效时间
  • `iat (Issued At)`:签发时间
  • `jti (JWT ID)`:编号

安全建议:不要在 Payload 放敏感明文;设置合理的过期时间(exp); 使用强密钥并定期轮换;生产环境全程使用 HTTPS 传输令牌。

JWT 的核心作用

  1. 用于在客户端和服务端之间传递身份和声明信息。
  2. 支持无状态认证,减少服务端保存会话数据的压力。
  3. 便于服务端验证请求来源和用户身份。
  4. 可以携带用户编号、角色、权限范围和过期时间等信息。
  5. 适用于前后端分离、单点登录和微服务认证场景。

为什么需要 JWT

  1. 传统 Session 机制通常需要服务端保存会话状态,扩展到多节点时管理成本较高。
  2. 在前后端分离和移动端场景中,客户端通常需要一种便于携带的身份凭证。
  3. 微服务之间调用接口时,需要一种标准化的认证信息传递方式。
  4. JWT 可以把必要的用户声明直接放入令牌中,减少重复查询。
  5. 它是开放标准,很多框架和平台都已提供成熟支持。

JWT 的基本原理

  1. 服务端在用户登录成功后,先生成包含用户信息和过期时间等声明的令牌内容。
  2. 系统将头部和载荷进行编码,并根据约定算法生成签名。
  3. 最终把头部、载荷和签名拼接成一个完整的 JWT 字符串返回给客户端。
  4. 客户端后续请求接口时,会携带该 JWT 作为身份凭证。
  5. 服务端收到请求后会校验签名、过期时间和声明内容,再决定是否允许访问。

常见示例

  1. JWT 常出现在接口请求头中的 Authorization: Bearer xxx 格式里。
  2. 头部中通常会声明令牌类型和签名算法,例如 algtyp
  3. 载荷中常包含 subexpiatrole 等字段。
  4. 签名部分用于校验令牌是否被篡改,而不是对载荷内容加密。

示例

原始内容

用户登录成功后生成一个 JWT 令牌

处理结果

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDAxIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNzE0MDAwMDAwfQ.signature

说明:这个字符串展示了一个 JWT 的典型结构,由头部、载荷和签名三部分组成。实际系统中签名值会根据密钥和算法动态计算得出。

应用场景

  1. 用户登录后的接口身份认证。
  2. 前后端分离系统中的访问凭证传递。
  3. 单点登录系统中的令牌认证。
  4. 微服务之间的调用鉴权和身份透传。
  5. 移动端、小程序和第三方客户端的会话识别。

使用时的注意事项

  1. JWT 默认只是编码和签名,不等于加密,载荷内容不应直接放入敏感信息。
  2. 应设置合理的过期时间,避免令牌长期有效带来安全风险。
  3. 密钥泄露会直接影响签名安全,因此需要妥善保管签名密钥。
  4. 如果需要提前失效控制,仅靠无状态 JWT 可能不够,还需要额外的黑名单或版本机制。
  5. 应明确区分签名算法、过期校验和令牌刷新机制,避免认证逻辑设计不完整。

总结

JWT 是一种用于身份认证和声明传递的标准化令牌格式,适合前后端分离、单点登录和微服务调用等场景。它的优势在于结构紧凑、易于传输和支持无状态认证,但在使用时需要特别注意过期控制、密钥管理和敏感信息保护问题。

常见问题 FAQ

JWT 解码后为什么能看到数据?

JWT 的 Header 和 Payload 只是 Base64URL 编码,不是加密,任何人都可解码查看。

解码成功就代表 token 一定有效吗?

不一定。还需要服务端验签、校验过期时间和业务上下文。

exp、iat、nbf 分别是什么意思?

exp 是过期时间,iat 是签发时间,nbf 是生效时间(在该时间前不可用)。

可以把密码等敏感信息放在 Payload 吗?

不建议。Payload 可被解码查看,敏感数据应加密存储或只放引用 ID。