mcpField
J
jwt-decode

jwt-decode

github.com/jsonwebtoken安全20720 次安装29 周前更新
代码仓库

关于 jwt-decode

jwt-decode 是用于查看 JWT 内容的 skill,不验证签名。它展示声明和时间信息,并提示多种安全风险;签名验证应使用 jwt-validate。

主要功能

  1. 01解码 JWT 头部和负载
  2. 02显示原始签名
  3. 03将令牌时间转换为 UTC
  4. 04标记常见安全风险
  5. 05递归解码嵌套 JWT

适用场景

  1. 01检查 JWT 中的声明
  2. 02查看令牌是否过期
  3. 03发现声明中的敏感数据
  4. 04检查嵌套 JWT

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jsonwebtoken/jwt-skills --skill jwt-decode

安装后在 Claude Code 中输入/jwt-decode确认已加载。

详细介绍

JWT 解码

通过 base64url 解码 JWT 的标头和载荷。不会验证签名——验证请使用 jwt-validate。

步骤

  1. 按 . 将令牌拆分为三部分(标头、载荷、签名)。
  2. 对第 1 和第 2 部分进行 base64url 解码,并将其解析为 JSON。
  3. 显示标头、载荷(包含所有声明)以及原始签名字符串。
  4. 对于 exp、nbf、iat,同时显示 Unix 时间戳和人类可读的 UTC 时间。如果 exp 已过期,注明 已过期 以及过期时长。
  5. 运行安全检查(见下文)。

输出格式

## Header
{ "alg": "RS256", "typ": "JWT", "kid": "abc123" }

## Payload
{ "iss": "https://auth.example.com/", "sub": "user|12345", "exp": 1735689600 }

exp: 2025-01-01T00:00:00Z — EXPIRED (3 months ago)
iat: 2024-12-31T00:00:00Z

## Signature
Algorithm: RS256 | Signature: [base64url string]
(Not verified — use jwt-validate to verify)

安全检查

发现以下情况时,醒目地标出:

  • alg: none — 令牌未签名。警告:“此令牌没有签名,无法信任。任何人都可以创建或修改它。”这是已知的攻击途径(CVE-2015-9235),攻击者会移除签名以绕过验证。
  • 载荷中包含敏感数据 — JWT 是编码而非加密的。如果在声明中发现密码、机密信息、API 密钥或个人身份信息(PII),请发出警告。
  • 缺少 exp — 令牌永不过期。将其标记为安全风险。
  • 标头中包含 jku/jwk/x5u — 这些字段可能被用于诱骗验证器获取攻击者控制的密钥。如存在,请标记。

备注

  • 如果 cty 标头为 "JWT",则载荷是一个嵌套 JWT——请递归解码。
  • 解码失败时,报告具体错误(base64 格式错误、JSON 无效、分段数量错误)。
  • 此技能只会显示令牌内容,不会说明其真实性。请引导用户使用 jwt-validate 进行验证。

评论

支持 Markdown