JWT 是什么?
JWT(JSON Web Token)是常见的登录凭证格式,由三段以 . 分隔的 Base64URL 组成:header.payload.signature。header 说明签名算法,payload 是用户数据与过期时间等「声明」(claim),signature 用来确认内容没有被篡改。
如何使用
- 把 JWT 粘贴到左边,可以包含开头的
Bearer,右边会立即显示 header、payload 与过期状态。 iat(签发)、nbf(生效)、exp(过期)会转成你所在时区的日期时间。- 如果是 HS256、HS384、HS512,输入密钥即可验证签名是否正确。
示例
点「载入示例」载入的 JWT,payload 解码后是:
{
"sub": "1234567890",
"name": "Mike",
"role": "admin",
"iat": 1700000000,
"exp": 4102444800
}
它是以密钥 toolpivo-secret 签出的 HS256 token。
常见问题
JWT 的内容是加密的吗?
不是。header 与 payload 只是 Base64URL 编码,任何人拿到 token 都能看到内容,所以不要在 payload 放密码等机密。签名只能证明内容没有被改过,不能隐藏内容。
把 token 粘贴到这里安全吗?
解码与验证都在你的浏览器中完成,token 与密钥不会发送到服务器,也不会保存到浏览器里。不过生产环境的 token 仍建议用完就让它过期。
为什么 RS256 不能验证?
RS256、ES256 等算法用私钥签名、公钥验证,需要取得签发方的公钥;本工具目前只支持用同一把密钥签名与验证的 HS256、HS384、HS512。
exp 的单位是什么?
按照 JWT 标准(RFC 7519),exp、iat、nbf 都是以「秒」为单位的 Unix 时间戳,不是毫秒。