## 💡 Issue - 데이터 레이어가 다른 레이어를 참조하지 않도록 변경해 개선합니다 ### AS - IS `TokenAuthenticator` - 액세스 토큰 만료 시, 리프레시 토큰을 통해 재발급 받아야 함 - 이때 getRefreshToken - 성공시 - 발급된 액세스, 리프레시 prefrenceManager에 저장 - 실패시 (리프레시도 만료라는 것 → 자동로그인 풀리고 로그인으로 넘어가야 함) - 이때, data 레이어의 authenticator에 로그인액티비티. 즉 **presentation 레이어를 참조**하고있음 ### TO - BE `AuthInterceptor` - 인터셉터, prefrenceManager 로 토큰 관리 로직 또한 한번에 해결 - 리프레시 또한 만료이면 preference의 AccessToken 값에 빈 문자열 저장 - 로그인 시 AccessToken이 빈 값이면 토스트 띄우고 재로그인 시키도록 해 data 레이어의 presentation 참조 제거 ## 📝 todo <!-- 상세한 작업으로 구분하여 나누어주세요. --> - [x] Authenticator가 refresh Token 만료시 presentation 레이어를 참조하는 코드를 제거 - [x] AuthInterceptor에서 다음과 같은 것들을 관리 할 수 있도록 - [x] 헤더 부착 - [x] 액세스 토큰, 리프레시 토큰 관리 - [x] 액세스 토큰 만료 시 처리 - [x] 리프레시 토큰 만료 시 처리 - [x] presentation 레이어에서 만료 시 화면 이동을 수행할 수 있도록 구현 - [x] 토큰 만료 - [x] 탈퇴, 로그아웃, 방문자 모드까지 기존 플로우대로 정상적인지 확인