JWT 解码器

在本地解码 JSON Web Token,检查头部和负载的 JSON,读取常见声明,并查看有关时间戳的说明,但不要将解码视为验证。

所有 JWT 解码均在您的浏览器本地运行。令牌不会发送到 Decode It 服务器。

仅解码

在本地解码头部和负载。不验证签名,也不能证明令牌是可信的。

不要粘贴签名密钥、私钥或您无权检查的生产令牌。

快速示例

粘贴一个 JWT 以解码其头部、负载、时间声明和原始片段。

JWT 解码器会显示的内容

JSON Web 令牌(JWT)是一种紧凑的令牌格式,常用于身份验证、授权、API 会话和身份工作流。JWT 通常由三个以点分隔的部分组成:头部(header)、载荷(payload)和签名(signature)。头部和载荷是 base64url 编码的 JSON,这意味着可以在不使用密钥的情况下解码并读取它们。

此 JWT 解码器侧重于检查。它会格式化头部和载荷,提取常见声明,显示原始段,并解释诸如 `iat`、`nbf` 和 `exp` 之类的基于时间的声明, iat, nbf,以及 exp。这在调试登录流程、API 调用、测试环境、OAuth 集成或令牌有效期问题时很有用。

  • 从头部读取令牌的算法和类型。
  • 检查发行者(issuer)、主体(subject)、受众(audience)和自定义载荷声明。
  • 将 NumericDate 声明转换为可读日期。
  • 复制已解码的头部、已解码的载荷或原始令牌段。

解码不是验证

解码 JWT 会告诉您令牌中写了什么。它不能证明谁创建了它、载荷是否被修改、签名是否匹配,或您的应用是否应接受它。签名验证需要正确的密钥、公钥或 JWKS 配置,并且必须与应用期望的算法相匹配。

签名部分不同于头部和载荷。它是对编码后的头部和载荷的加密学值,而不是另一个可解码的 JSON 对象。本页在存在签名时会在原始段输出中显示签名,但不会要求提供签名密钥或验证其值。

将此页面视为检查器,而非权威。已解码的令牌仍可能是伪造的、已过期的、未签名的、使用意外密钥签名的,或被签发它的服务拒绝。

常见的 JWT 声明

Claim Meaning 典型用途
iss Issuer 签发令牌的服务或身份提供者。
sub Subject 令牌所涉及的用户、账户、客户端或实体。
aud Audience 应该接收该令牌的 API、应用或服务。
iat 签发时间 令牌创建的时间。
nbf 生效时间之前 在此时间之前不应接受该令牌。
exp 到期时间 在此时间之后不应接受该令牌。

安全调试习惯

  • 尽可能使用测试令牌,而不是生产用户的令牌。
  • 不要将签名密钥、私钥或 API 凭证粘贴到解码器中。
  • 检查算法是否为您的应用所期望。
  • Compare iss and aud 将其与您正在调试的服务进行比对。
  • 调试过期问题时,请记住浏览器时间与服务器时间可能不一致。

相关的本地工具

  • 使用 Base64 编码解码器 当您需要检查普通的 base64 字符串时请使用该工具。JWT 使用 base64url,因此对于完整令牌该 JWT 解码器仍然是更安全的选择。
  • 使用 JSON 美化器 当您想在令牌上下文之外格式化复制的载荷对象时使用。
  • 使用 Unix 时间戳转换器 当您需要对如 `iat`、`nbf` 或 `exp` 之类的 NumericDate 值进行专门的时间戳检查时使用。 iat, nbf,或 exp.

常见问题

此 JWT 解码器会验证签名吗?

不会。它解码头部和载荷以便您检查,但不会验证签名或证明令牌可信。验证需要签发者的密钥、公钥或 JWKS 配置。签名不会以解码的 JSON 面板显示,因为它是一个加密学值,而不是可读的声明数据;此工具仅在原始段输出中显示签名。

任何人都可以解码 JWT 吗?

可以,头部和载荷是编码的,而非加密的,除非您的系统使用了单独的加密令牌格式。不要在 JWT 载荷中放置机密信息。

过期的 JWT 意味着什么?

如果 `exp` 声明在过去,服务器通常应拒绝该令牌。本页可以显示时间戳,但服务器是最终的权威。 exp

为什么该工具接受 Bearer 前缀?

开发人员通常会从 `Authorization: Bearer ...` 标头复制令牌。该工具会在解码令牌主体之前移除该前缀。 Authorization: Bearer ... 工具会在解码令牌主体之前删除该前缀。