返回博客
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 解码器检查和验证您的令牌。