JWT认证指南 📜🔐

JWT(JSON Web Token)是一种用于身份验证和信息传递的开放标准,常用于Web应用和API安全。以下是关键要点:

1. JWT核心概念

  • 令牌结构:由三部分组成:Header(头部)、Payload(载荷)、Signature(签名)
    • 📌 Header: 定义令牌类型和签名算法(如 HS256
    • 📌 Payload: 包含声明(claims),如用户ID、权限、过期时间等
    • 📌 Signature: 通过密钥对前两部分加密,确保数据完整性

2. JWT工作流程

  1. 用户登录 → 服务器生成JWT
  2. 客户端存储令牌(如 localStoragesessionStorage
  3. 请求接口时携带 Authorization: Bearer <token>
  4. 服务器验证签名并解析令牌内容
    JWT_Workflow

3. 实现步骤

  • 生成令牌:使用 jsonwebtoken 库(Node.js)或 java-jwt(Java)
    jwt.sign({ user: 'example' }, 'secret_key', { expiresIn: '1h' });
    
  • 验证令牌
    jwt.decode(token, 'secret_key', algorithms=['HS256'])
    
  • 安全性建议
    • 使用HTTPS传输
    • 设置合理过期时间(exp 声明)
    • 避免敏感信息明文存储

4. 常见问题

  • 令牌泄露怎么办?
    • 立即吊销并生成新令牌
  • 如何防止重放攻击?
    • 添加 iat(签发时间)和 nbf(不可用于时间)声明
  • JWT是否需要刷新?
    ✅ 是的,可通过 refresh_token 机制实现

5. 扩展阅读

JWT_Token