这两个 token 遵循一个简单的生命周期:短寿命的 access token 为每次 API 调用授权,而长寿命的 refresh token 在它们过期时静默地铸造新的 access token——于是用户无需重新输入凭据就能保持登录。
流程
sql
┌─────────┐ login ( pass) ┌────────────┐
│ Client │ ────────────────────────▶ │ Auth server│
│ │ ◀──── access refresh ─── │ │
└─────────┘ └────────────┘
│ API 调用: : Bearer access
▼
┌────────────┐ 验证 signature (无需 DB lookup)
│ Resource │ ──── OK ────▶ (access 仍然有效)
│ API │ ──── ───────▶ (access 已过期)
└────────────┘
│ 遇到 时: POST token { refresh }
▼
┌────────────┐ 验证 轮换
│ Auth server│ ──── 新 access ( 新 refresh) ────▶ 重试该调用
└────────────┘
