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
issandaud将其与您正在调试的服务进行比对。 - 调试过期问题时,请记住浏览器时间与服务器时间可能不一致。
相关的本地工具
- 使用 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 ... 工具会在解码令牌主体之前删除该前缀。