什么是 JWT?

JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用环境间安全地传输信息。 JWT 由三部分组成:Header(头部)、Payload(负载)和 Signature(签名),通过点号(.)连接。

JWT 的结构

Header(头部):通常包含两部分:token 的类型(typ,通常是 JWT)和所使用的签名算法(alg,如 HMAC SHA256 或 RSA)。

Payload(负载):包含声明(Claims)。声明是关于实体(通常是用户)和其他数据的陈述。有三种类型:注册声明(Registered Claims,如 iss、sub、aud、exp、nbf、iat、jti)、公共声明(Public Claims)和私有声明(Private Claims)。

Signature(签名):用于验证消息在传输过程中没有被更改。对于使用私钥签名的 token,还可以验证 JWT 的发送方是否可信。签名的计算方式是将编码后的 Header 和 Payload 使用密钥进行签名。

使用场景

  • 认证(Authentication):用户登录后,服务器生成 JWT 返回给客户端,客户端在后续请求中携带 JWT 来证明身份。
  • 信息交换(Information Exchange):JWT 使用签名确保信息的完整性,可以安全地在各方之间传递信息。
  • 单点登录(SSO):JWT 常用于实现跨域单点登录方案。
  • API 授权:用于 API 网关的访问控制和权限验证。

安全注意事项

  • 不要在 JWT 中存储敏感信息:JWT 的 Header 和 Payload 仅经过 Base64URL 编码,而非加密,任何人解码后都可以读取其中的内容。
  • 验证签名:始终验证 JWT 的签名以确保数据完整性,不要信任未经验证的 JWT。
  • 设置合理的过期时间:exp 声明应设置合理的时间窗口,避免 token 长时间有效。
  • 使用 HTTPS:始终通过 HTTPS 传输 JWT,防止中间人攻击。
  • 选择合适的签名算法:生产环境建议使用 RS256(RSA)或 ES256(ECDSA)非对称算法,而非 HS256(HMAC)对称算法。
  • 避免使用 alg: none:永远不要在生产环境中使用无签名算法的 JWT。

如何使用本工具

将您的 JWT Token 粘贴到上方的输入框中,点击解析按钮,工具会自动解析 JWT 的三个部分。 Header 和 Payload 部分会以语法高亮的 JSON 格式显示,标准声明会以表格形式列出。 如果 JWT 中包含 exp(过期时间)声明,工具会显示剩余有效时间并提供实时倒计时。 您可以通过点击每部分旁边的复制按钮将相应内容复制到剪贴板。