jwt 2025-01-22
JWT 令牌:工作原理和安全最佳实践
深入了解 JSON Web Token - 结构、签名工作原理以及要避免的常见安全错误。
JSON Web Token(JWT)是一个开放标准(RFC 7519),用于在各方之间安全地传输 JSON 对象信息。
JWT 结构
JWT 由三部分组成,以点分隔:
1. 头部
{
"alg": "HS256",
"typ": "JWT"
}
2. 载荷(声明)
{
"sub": "1234567890",
"name": "John Doe",
"exp": 1516242622,
"role": "admin"
}
标准声明:
iss(签发者)sub(主题)exp(过期时间)iat(签发时间)
3. 签名
使用密钥对头部和载荷进行签名。
JWT 认证工作流程
1. 用户向服务器发送凭据
2. 服务器验证凭据并创建 JWT
3. JWT 发送回客户端
4. 客户端在后续请求中包含 JWT
5. 服务器验证 JWT 签名并处理请求
安全最佳实践
应该做的:
- 设置短的过期时间
- 所有 JWT 传输使用 HTTPS
- 验证所有声明
- 在 HttpOnly cookie 中存储令牌
不应该做的:
- 在载荷中存储敏感数据(未加密)
- 在生产环境中使用
none算法 - 在 localStorage 中存储 JWT
- 创建永不过期的令牌
使用我们的 JWT 解码器工具解码和检查 JWT 令牌。