Access Token 만료 흐름
A. 반응형
- 프론트가 보호 API 호출 →
Authorization: Bearer <access>
- 리소스 서버(백엔드)가 access 만료 감지 → 401 반환
- 가능하면 헤더 포함:
WWW-Authenticate: Bearer error="invalid_token", error_description="expired"
- 프론트가 401 인터셉트 →
POST /auth/refresh 호출
- 서버가 refresh 검증 → 새 access(+) 새 refresh(회전 사용 시) 발급
- 프론트가 원래 API 1회 재시도 → 정상 응답
실패 분기: 3)에서 /auth/refresh가 401/403/400(invalid_grant)이면 로그인 페이지로 리다이렉트
B. 선제 갱신
- 프론트가 access의
exp를 디코드해 만료 30~60초 전 POST /auth/refresh 실행
- 성공 시 토큰 교체, 실패 시 즉시 재로그인
Refresh Token 만료 흐름
1) 사용자 활동 중 만료/무효(로그아웃·블랙리스트·재사용탐지 등)
- 프론트가
/auth/logout 호출
- 프론트: 로컬 access 정리 + 리프레시 쿠키 삭제(서버가
Set-Cookie; Max-Age=0권장) → 재로그인
2) 오랫동안 미사용하다가 돌아온 경우
- 첫 API 호출이 401 → 프론트가
/auth/refresh 시도 → refresh도 만료라 실패 → 재로그인