快速开始
-
粘贴 Token
支持带 Bearer 前缀; 系统会自动去掉。
-
查看 Header 与 Payload
重点关注 alg、sub、aud、exp 等字段。
-
核对过期与签名
工具会提示即将过期、已过期、或签名缺失。
JWT 是 OAuth 与 API 鉴权最常见的凭证格式,由 Header、Payload、Signature 三段 Base64URL 组成。本工具在浏览器本地解码并高亮 exp、aud、iss 等声明,帮助快速定位过期、受众不匹配或环境混用问题。解码不等于验签——请配合 jwt-generator 做开发联调,生产环境务必在服务端校验签名。
隐私提示:本地解析,不上传服务器。
↓ 在下方输入区粘贴内容,结果会立即显示
支持完整 Token 或带 Bearer 前缀的字符串,粘贴后自动解析。
JWT 是 OAuth 与 API 鉴权最常见的凭证格式,由 Header、Payload、Signature 三段 Base64URL 组成。本工具在浏览器本地解码并高亮 exp、aud、iss 等声明,帮助快速定位过期、受众不匹配或环境混用问题。解码不等于验签——请配合 jwt-generator 做开发联调,生产环境务必在服务端校验签名。
粘贴 Token
支持带 Bearer 前缀; 系统会自动去掉。
查看 Header 与 Payload
重点关注 alg、sub、aud、exp 等字段。
核对过期与签名
工具会提示即将过期、已过期、或签名缺失。
标准 JWT 由 Header.Payload.Signature 组成,用点号分隔。Header 通常含 alg(算法)与 typ;Payload 是 JSON 声明集,常见 sub(用户 ID)、exp(过期 Unix 时间戳)、iat、aud、iss;Signature 用于验证前两段未被篡改。
本工具对 Header 与 Payload 做 Base64URL 解码展示,并解析 exp 给出过期/即将过期提示。若 Signature 段缺失或明显截断,工具会标注异常——这在复制 Token 时很常见。
第一步看 exp:若小于当前时间,后端应返回 401,前端需走刷新 Token 或重新登录。第二步核对 aud 与 iss 是否匹配当前服务配置——多环境(staging/production)混用 Token 时极易出错。第三步检查自定义声明(如 role、scope)是否包含预期权限。
配合 **json-formatter** 格式化从 API 返回的错误 JSON,用 **base64-encoder-decoder** 理解个别 claim 的编码。若需签发测试 Token,可用 **jwt-generator**(仅开发环境,勿用生产密钥)。
「能解码」≠「可信任」。攻击者可伪造 Payload 并配上任意 Signature;只有持有密钥的服务端验签才能确认真实性。不要把 JWT 当作加密:Payload 只是 Base64URL 编码,任何拿到字符串的人都能阅读。
请勿在工单、截图或公开仓库粘贴生产 Token。若必须分享样本,替换 sub、email 为假数据,并缩短 exp。处理完成后清空输入框。
exp(Expiration Time)声明 token 在此 Unix 时间戳之后必须被拒绝;nbf(Not Before)则定义生效起点。许多 401 并非签名错误,而是 exp 已过期或 nbf 尚未到达——解码器会按当前本地时间给出「已过期」「即将过期」提示。若客户端与服务端时钟偏差超过后端允许的 leeway(常见 0–300 秒),合法用户也会间歇性失败。排查时对比 exp 与服务器 UTC 时间,并确认 refresh token 流程是否在 access token 过期前触发。
iat(Issued At)帮助判断 token 是否被异常重放或缓存过久。某些系统还会在 payload 中加入 auth_time 或自定义 TTL 字段。调试 refresh 逻辑时,记录连续两次解码的 exp 差值是否等于配置的 access token 寿命。配合 jwt-generator 签发不同 exp 的样本,可在 staging 环境复现边界条件而无需等待真实过期。
aud(Audience)列出 token 的预期接收方——API 网关、资源服务器或特定 client_id。若前端从 staging IdP 拿到 token 却调用 production API,aud 不匹配会导致「payload 看起来正常但验签通过仍 403」。iss(Issuer)标识签发者 URL 或租户 ID,必须与 OIDC discovery 文档中的 issuer 完全一致(包括末尾斜杠)。多租户 SaaS 常在 payload 中加入 tenant_id 或 org_slug,解码后逐项与路由上下文比对。
scope 与自定义 role/permissions 声明决定授权范围,但解码器只展示内容、不评估策略。若 RBAC 异常,先确认 scope 字符串是否为空或被截断(某些 IdP 对 consent 有限制)。错误响应体可用 json-formatter 格式化;若 claim 值本身经 Base64 嵌套,再用 base64-encoder-decoder 展开。
Header 中的 alg 声明签名算法:HS256 使用对称密钥,RS256/ES256 使用公钥验签。历史上曾出现 alg:none 攻击——生产服务必须白名单允许的算法并拒绝 downgrade。本工具展示 alg 供人工审查,但不执行密码学验签;「能读 payload」绝不代表 token 可信。对称密钥场景下,jwt-generator 可用于本地生成测试 token,密钥仅用于开发环境。
RS256 公钥通常来自 JWKS 端点;kid(Key ID)指示应使用哪把密钥。密钥轮换期间旧 token 可能携带过期 kid,导致验签失败。运维应监控 JWKS 缓存 TTL 与轮换窗口。若仅需确认 payload 结构是否正确,本地解码足够;上线前必须在 API 网关或应用层调用标准 JWT 库完成完整验签。
JWT payload 仅 Base64URL 编码,任何获得完整字符串的人都能解码查看 email、sub 或内部 ID。请勿在 Slack、工单截图或公开 gist 粘贴生产 token。分享调试样本时,替换 sub/email 为虚构值、缩短 exp 至几分钟内,并移除 Authorization 头中的 Bearer 前缀后再粘贴。处理完毕清空输入框;本工具不上传 token,但剪贴板与屏幕共享仍会泄露。
若怀疑 token 泄露,应立即在 IdP 撤销 refresh token、轮换签名密钥并缩短 access token TTL。日志中记录 jti(JWT ID)可实现单 token 吊销。配合 pii-scanner 扫描待外发的日志文本,避免二次泄露;hash-generator 可用于对比 webhook 签名原文,但与 JWT 验签是不同流程。
预发与生产若时钟差几分钟,会导致「本地未过期、网关判 exp」。解码后记下 exp/nbf 的绝对时间,与服务器 NTP 状态对照。同时确认 aud/iss 是否仍指向旧环境域名——复制生产 token 到预发是常见事故。
只在本地解码排障;不要把生产 token 贴进群聊。确认问题后轮换并作废相关会话。
Input
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMiLCJleHAiOjQ3MDI0NDQ4MDB9.signature
粘贴后可看到 sub=123 与 exp 时间。
不会。解析完全在浏览器本地完成,不上传 Towalles 服务器。
因为 exp 声明的时间早于当前时间。检查签发方时区、时钟偏差与 Token 有效期策略。
支持;粘贴 Authorization: Bearer eyJ... 或纯 Token 均可,工具会自动清理前缀。
不等于。本工具不做 HMAC/RSA 验签;生产环境必须由 API 服务端使用密钥验证。
HS256 用对称密钥,泄露风险高,适合内部短期场景;RS256 用公私钥对,公钥可分发,更适合多服务验证。生产 OAuth 通常推荐 RS256。
否。解码只说明 Base64URL 格式正确且 JSON 可解析;攻击者可伪造 payload 并附上任意签名段。只有持有密钥或公钥的服务端验签才能确认真实性。请在本工具查看声明后,仍依赖 API 层的标准 JWT 库完成验签与 aud/iss 校验。
常见原因包括:aud 或 iss 不匹配、nbf 在未来、服务端时钟与 exp 基准不一致、token 在黑名单中,或网关使用了不同的签名密钥。用本工具核对 aud/iss/nbf,并与 IdP 配置及 API 日志中的拒绝原因交叉验证。
不需要。粘贴 Authorization 头整行(如 Bearer eyJ...)时,工具会自动识别并去掉 Bearer 前缀与多余空白。若仍失败,检查 token 是否被换行截断或缺少 Signature 段。
解码阶段无区别——Header 与 Payload 都是 Base64URL,与签名算法无关。区别在于验签:HS256 需要对称密钥,RS256 需要 JWKS 公钥。本工具展示 alg 字段提醒你后续应使用的验签方式,但不执行验签本身。
可能是 JWE 或其他格式,或被截断。不要当标准 JWS 三段式强行解;先向签发方确认。