766113 工具箱
JWT

JWT 解码排查清单:能看什么,不能粘什么

JWT 很适合快速携带身份声明,但它也经常被误解。解码只能说明内容长什么样,不能说明这个令牌一定可信。

一个典型 JWT 由三段组成:header、payload 和 signature。前两段通常只是 Base64URL 编码后的 JSON,任何拿到令牌的人都能解码查看。第三段签名用于验证内容是否被篡改,必须结合服务端密钥或公钥才能判断。

排查登录问题时,可以先看 expiatnbf 这些时间字段。它们通常是 Unix 秒级时间戳,不是毫秒。如果系统把秒当成毫秒,或把毫秒当成秒,过期判断会立刻失真。

还要检查 audisssub、角色字段和租户字段。很多 401 或 403 并不是令牌过期,而是受众、签发方或权限声明与当前服务不匹配。

不要把仍然有效的生产 JWT 粘贴到公共网页或聊天窗口。排查时优先使用过期令牌、脱敏令牌,或在本地离线工具中查看。

解码不等于验证

如果工具只是展示 payload,它没有检查签名。真正验证需要知道算法、密钥来源、issuer、audience 和时钟容忍窗口。线上安全判断应该交给后端认证中间件,而不是人工看一眼 payload。