QR 로그인 키가 캐시에 남아 재사용되던 문제
만료된 인증 키가 캐시에서 재사용되던 문제를 gcTime: 0으로 매번 새 키 발급하도록 해결.
상황
모바일 앱으로 QR을 스캔해 로그인하는 흐름에서, 만료된 인증 키가 재사용돼 로그인이 실패하는 경우가 있었습니다.
원인 분석
인증 키는 시간이 지나면 서버에서 만료되는데, 요청 결과가 서버 상태 캐시에 남아 다음 로그인 시도에서 이미 만료된 키가 다시 쓰였습니다.
해결
staleTime: 0만으로는 메모리 캐시가 남아 부족했고, 해당 쿼리에 gcTime: 0까지 적용해 매번 새 키를 발급받도록 했습니다. SSE(EventSource)로 키를 수신한 뒤 세션을 생성하는 흐름을 정리했습니다.
결과 · 배운 점
만료 키 재사용으로 인한 로그인 실패가 사라졌고, 이후로는 캐시해도 되는 값인지부터 따져보게 됐습니다.