token ทั้งสองดำเนินตามวงจรชีวิตที่เรียบง่าย: access token อายุสั้น อนุญาตแต่ละการเรียก API และ refresh token อายุยาว สร้าง access token ใหม่อย่างเงียบ ๆ เมื่อมันหมดอายุ — เพื่อให้ผู้ใช้ยังคง login อยู่โดยไม่ต้องกรอก credentials อีก
กระแสการทำงาน
┌─────────┐ 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 ใหม่) ────▶ ลองเรียกใหม่
└────────────┘
