jwt 2025-01-15
理解 JWT 令牌结构
深入了解 JSON Web 令牌:结构、声明和安全性。
JWT(JSON Web Token)是一种用于在各方之间安全传输信息的开放标准。
JWT 结构
JWT 由三个部分组成,用点分隔:
xxxxx.yyyyy.zzzzz
Header.Payload.Signature
1. 头部
包含令牌类型和签名算法:
{
"alg": "HS256",
"typ": "JWT"
}
2. 载荷
包含声明(关于用户的陈述):
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022,
"exp": 1516242622
}
3. 签名
验证令牌未被篡改:
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
标准声明
- iss: 签发者
- sub: 主题(用户 ID)
- aud: 受众
- exp: 过期时间
- iat: 签发时间
- nbf: 生效时间
安全最佳实践
1. 使用强密钥: 至少 256 位
2. 设置过期时间: 始终包含 exp 声明
3. 使用 HTTPS: 永远不要通过 HTTP 传输
4. 验证所有声明: 检查 iss、aud、exp
5. 不存储敏感数据: 载荷是可读的
常用算法
- HS256: 带 SHA-256 的 HMAC(对称)
- RS256: 带 SHA-256 的 RSA(非对称)
- ES256: 带 SHA-256 的 ECDSA(非对称)
使用我们的 JWT 解码器检查和验证您的令牌。