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
流程说明
- 登录认证:用户名、密码登录。
- 签发 Token:认证成功后生成 JWT。
- 携带 Token:客户端每次请求携带
Authorization: Bearer <JWT>。
- 校验 Token:验证签名、过期时间(
exp)、权限等。
- 访问资源:校验通过后返回业务数据。
- 刷新 Token:Access Token 过期后,使用 Refresh Token 获取新的 Access Token。
核心特点
- 认证一次,后续免登录。
- 服务端无 Session(Stateless)。
- JWT 默认是签名,不是加密。
- 推荐:Access Token(15
30 分钟)+ Refresh Token(730 天)。