JWT 在线解码工具
本地解析 JWT 的 Header / Payload / Signature,快速查看过期时间与声明内容。
JWT(通常由三段构成:`header.payload.signature`) 是 JSON Web Tokens 的缩写,是目前常用的跨域认证解决方案, 也是一个开放标准(RFC 7519),用于在各方之间以 JSON 对象安全传输信息。
JWT 包含认证信息,请妥善保管!本工具不记录和存储你的 JWT 信息, 所有验证和调试都在客户端本地完成。
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 的核心作用
- 用于在客户端和服务端之间传递身份和声明信息。
- 支持无状态认证,减少服务端保存会话数据的压力。
- 便于服务端验证请求来源和用户身份。
- 可以携带用户编号、角色、权限范围和过期时间等信息。
- 适用于前后端分离、单点登录和微服务认证场景。
为什么需要 JWT
- 传统 Session 机制通常需要服务端保存会话状态,扩展到多节点时管理成本较高。
- 在前后端分离和移动端场景中,客户端通常需要一种便于携带的身份凭证。
- 微服务之间调用接口时,需要一种标准化的认证信息传递方式。
- JWT 可以把必要的用户声明直接放入令牌中,减少重复查询。
- 它是开放标准,很多框架和平台都已提供成熟支持。
JWT 的基本原理
- 服务端在用户登录成功后,先生成包含用户信息和过期时间等声明的令牌内容。
- 系统将头部和载荷进行编码,并根据约定算法生成签名。
- 最终把头部、载荷和签名拼接成一个完整的 JWT 字符串返回给客户端。
- 客户端后续请求接口时,会携带该 JWT 作为身份凭证。
- 服务端收到请求后会校验签名、过期时间和声明内容,再决定是否允许访问。
常见示例
- JWT 常出现在接口请求头中的
Authorization: Bearer xxx格式里。 - 头部中通常会声明令牌类型和签名算法,例如
alg和typ。 - 载荷中常包含
sub、exp、iat、role等字段。 - 签名部分用于校验令牌是否被篡改,而不是对载荷内容加密。
示例
原始内容
用户登录成功后生成一个 JWT 令牌处理结果
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDAxIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNzE0MDAwMDAwfQ.signature说明:这个字符串展示了一个 JWT 的典型结构,由头部、载荷和签名三部分组成。实际系统中签名值会根据密钥和算法动态计算得出。
应用场景
- 用户登录后的接口身份认证。
- 前后端分离系统中的访问凭证传递。
- 单点登录系统中的令牌认证。
- 微服务之间的调用鉴权和身份透传。
- 移动端、小程序和第三方客户端的会话识别。
使用时的注意事项
- JWT 默认只是编码和签名,不等于加密,载荷内容不应直接放入敏感信息。
- 应设置合理的过期时间,避免令牌长期有效带来安全风险。
- 密钥泄露会直接影响签名安全,因此需要妥善保管签名密钥。
- 如果需要提前失效控制,仅靠无状态 JWT 可能不够,还需要额外的黑名单或版本机制。
- 应明确区分签名算法、过期校验和令牌刷新机制,避免认证逻辑设计不完整。
总结
JWT 是一种用于身份认证和声明传递的标准化令牌格式,适合前后端分离、单点登录和微服务调用等场景。它的优势在于结构紧凑、易于传输和支持无状态认证,但在使用时需要特别注意过期控制、密钥管理和敏感信息保护问题。
常见问题 FAQ
JWT 解码后为什么能看到数据?
JWT 的 Header 和 Payload 只是 Base64URL 编码,不是加密,任何人都可解码查看。
解码成功就代表 token 一定有效吗?
不一定。还需要服务端验签、校验过期时间和业务上下文。
exp、iat、nbf 分别是什么意思?
exp 是过期时间,iat 是签发时间,nbf 是生效时间(在该时间前不可用)。
可以把密码等敏感信息放在 Payload 吗?
不建议。Payload 可被解码查看,敏感数据应加密存储或只放引用 ID。
