두 토큰은 단순한 생명주기를 따릅니다: 단수명 access token이 각 API 호출을 인가하고, 장수명 refresh token이 만료 시 조용히 새 access token을 발급합니다 — 그래서 사용자는 자격 증명을 다시 입력하지 않고 로그인 상태를 유지합니다.
흐름
scss
┌─────────┐ . login (user + pass) ┌────────────┐
│ Client │ ────────────────────────▶ │ Auth server│
│ │ ◀──── access + refresh ─── │ │
└─────────┘ └────────────┘
│ . API 호출: Authorization: Bearer <access>
▼
┌────────────┐ 서명 + exp 검증 (DB 조회 없음)
│ Resource │ ──── OK ────▶ (access 아직 유효)
│ API │ ──── ───────▶ (access 만료됨)
└────────────┘
│ . 시: POST /token { refresh }
▼
┌────────────┐ 검증 + 회전
│ Auth server│ ──── 새 access (+ 새 refresh) ────▶ 호출 재시도
└────────────┘
