功能简介
JSON Web Token(JWT)是一个用点分成三段的紧凑字符串:头部写明签名算法,载荷包含用户或会话的声明,最后是签名。JWT 广泛用于登录会话、OAuth 2.0 访问令牌和 OpenID Connect 的 ID 令牌。
头部和载荷只是做了 Base64URL 编码,并没有加密。本工具把它们解码成格式化的 JSON,并解释标准的时间声明,让你看清令牌属于谁、带了哪些权限、是否已过期。
使用方法
- 把令牌粘贴到「令牌」框。从 Authorization 请求头复制的
Bearer前缀会自动去掉。 - 看状态标签:「未过期」「已过期」「尚未生效」或「没有过期时间」。
- 查看签发时间、生效时间和过期时间,同时显示本地时间和 Unix 秒数。
- 用「复制」按钮复制格式化后的头部或载荷 JSON。
示例
示例令牌的头部和载荷:
{ "alg": "HS256", "typ": "JWT" }
{
"sub": "1234567890",
"name": "张三 Jane Doe",
"roles": ["admin", "editor"],
"iat": 1700000000,
"exp": 4102444800
}
常见声明
iss签发方,sub主体(通常是用户 ID),aud接收方iat签发时间,nbf生效时间,exp过期时间,单位都是 Unix 秒jti令牌唯一 ID,常用于吊销令牌
常见问题
› 把令牌粘贴到这里安全吗?
令牌在浏览器中解码,不会发送到任何地方。不过生产环境的令牌要像密码一样对待:任何人拿到有效令牌,在过期前都能使用。
› 这个工具会校验签名吗?
不会。校验需要密钥(HS256)或签发方的公钥(RS256、ES256)。解码只是读取内容,这些内容本来就没有加密,只是做了 Base64URL 编码。服务端没有校验过的令牌,其中的声明都不能信任。
› 为什么显示「已过期」?
exp 声明早于你设备的当前时间。先确认电脑时间正确,再向签发方重新获取令牌。
› 能解码加密令牌(JWE)吗?
不能。JWE 有五段,载荷是加密的,没有解密密钥无法读取。