如何解码 JWT
- 1粘贴令牌,开头的“Bearer ”会被自动去掉。
- 2以格式化 JSON 查看 header 和 payload。
- 3在“时间声明”里查看令牌是否已过期或尚未生效。
JWT 的组成
JWT 是用点号连接的三段 Base64url 字符串。header 和 payload 是 JSON;签名是二进制数据,只能用签发方的密钥验证。
Header令牌类型和签名算法,例如 HS256 或 RS256。
Payload关于用户和令牌本身的声明。
Signature证明前两段没有被篡改。
注册声明
iss签发者:谁创建了这个令牌sub主体:通常是用户 IDaud受众:令牌要给哪个服务使用exp过期时间,自 1970 年起的秒数nbf生效时间:在此之前令牌无效iat签发时间jtiJWT ID:令牌的唯一标识常见问题
把真实令牌粘贴到这里安全吗?
令牌在你的浏览器中解码,不会发送到任何地方。但仍应像对待密码一样对待有效令牌,不要粘贴到不信任的工具里。
为什么不验证签名?
验证需要签发方的密钥或公钥。解码只能看到令牌声称的内容;在服务器上,没有验证签名之前绝不要相信这些声明。
JWT 是加密的吗?
标准的签名 JWT 不是。任何拿到令牌的人都能读取 payload,它只是 Base64url 编码 的 JSON,不要在里面放机密信息。
日期用的是哪个时区?
你设备的本地时区。payload 里的原始值是以秒为单位的 Unix 时间戳(UTC)。