返回博客
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 令牌。