WebView access-token 무한 재요청 루프
만료 시각 계산 대신 서버 응답(401)을 기준으로 재발급하게 바꿔 무한 루프를 끊음.
상황
WebView 환경에서 액세스 토큰 재요청이 끝없이 반복되는 현상이 있었습니다.
원인 분석
만료 시각만 보고 토큰을 재사용하던 로직 때문에, 서버가 이미 거부한(하지만 만료 시각은 아직 남은) 토큰을 계속 다시 쓰면서 재요청이 반복됐습니다.
해결
서버가 거부한 토큰은 만료 시각이 남아 있어도 다시 쓰지 않도록 강제 갱신(forceRefresh)을 두고, 재발급 기준을 서버의 401 응답으로 바꿨습니다. 재로그인 실패 시에도 서버 401일 때만 로그아웃하고, 네트워크 오류일 때는 세션을 유지하도록 나눴습니다.
결과 · 배운 점
무한 루프가 사라졌고, 인증이 시간 계산이 아니라 서버가 실제로 거부했는지(401)를 기준으로 동작하게 됐습니다.