Die zwei Tokens folgen einem einfachen Lebenszyklus: ein kurzlebiges Access Token autorisiert jeden API-Aufruf, und ein langlebiges Refresh Token prägt still neue Access Tokens, wenn sie ablaufen — sodass der Nutzer eingeloggt bleibt, ohne seine Zugangsdaten erneut einzugeben.
Der Ablauf
┌─────────┐ login ( pass) ┌────────────┐
│ Client │ ────────────────────────▶ │ Auth server│
│ │ ◀──── access refresh ─── │ │
└─────────┘ └────────────┘
│ API : : Bearer access
▼
┌────────────┐ verify signature ( DB lookup)
│ Resource │ ──── OK ────▶ (access still valid)
│ API │ ──── ───────▶ (access expired)
└────────────┘
│ : POST token { refresh }
▼
┌────────────┐ verify rotate
│ Auth server│ ──── access ( refresh) ────▶ retry the
└────────────┘
