JWT认证流程

JWT认证完整流程

sequenceDiagram
    participant Client
    participant Auth
    participant API
    participant Service

    Client->>Auth: ① 用户登录(账号/密码)
    Auth->>Auth: ② 校验身份
    Auth-->>Client: ③ 签发 JWT

    Client->>API: ④ 携带 JWT 请求
Authorization: Bearer Token API->>API: ⑤ 校验签名、过期时间、权限 API->>Service: ⑥ 转发请求 Service-->>Client: ⑦ 返回业务数据 Note over Client,Auth: Access Token 过期 Client->>Auth: ⑧ Refresh Token 换取新 JWT Auth-->>Client: ⑨ 返回新的 Access Token

流程说明

  1. 登录认证:用户名、密码登录。
  2. 签发 Token:认证成功后生成 JWT。
  3. 携带 Token:客户端每次请求携带 Authorization: Bearer <JWT>
  4. 校验 Token:验证签名、过期时间(exp)、权限等。
  5. 访问资源:校验通过后返回业务数据。
  6. 刷新 Token:Access Token 过期后,使用 Refresh Token 获取新的 Access Token。

核心特点

  • 认证一次,后续免登录。
  • 服务端无 Session(Stateless)。
  • JWT 默认是签名,不是加密。
  • 推荐:Access Token(1530 分钟)+ Refresh Token(730 天)。