login()이 자격 증명을 보내 토큰을 받아 저장한 뒤, /me 호출에서 apiFetch가 토큰 만료 임박 여부를 확인합니다. 만료가 가까우면 하나의 공유된 갱신 요청으로 새 토큰을 받고, 그래도 401이면 한 번 더 갱신 후 재시도합니다.
올린 코드에서 찾지 못한 부분
- 서버의 /auth/refresh 엔드포인트 구현 (리프레시 토큰 회전 여부)
- 로그인 화면 UI 및 SESSION_EXPIRED 처리 코드
코드와 일치src/auth/login.ts:12
무슨 일이 일어나나
이메일과 비밀번호를 JSON 본문에 담아 /auth/login 으로 POST 요청을 보냅니다. 이 요청은 apiFetch를 거치지 않으므로 Authorization 헤더가 붙지 않습니다.
이 시점의 값 예시
email = "kim@example.com"
body = {"email":"kim@example.com","password":"••••••"}검증 포인트
- 로그인 요청이 apiFetch가 아닌 fetch를 직접 쓰는 것이 의도된 것인지 확인 (토큰 갱신 로직을 타지 않음)
- 네트워크 오류(fetch reject) 시 별도 처리 없이 그대로 예외가 올라감
← → 방향키로 단계 이동