Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

자동 로그인 방식에 대하여 #4

Open
dlgocks1 opened this issue Nov 1, 2023 · 0 comments
Open

자동 로그인 방식에 대하여 #4

dlgocks1 opened this issue Nov 1, 2023 · 0 comments
Labels
bug Something isn't working

Comments

@dlgocks1
Copy link
Contributor

dlgocks1 commented Nov 1, 2023

안녕하세요 동천

에뮬레이터가 아닌 실 기기로 오랜만에 개발을 헀는데 메인화면에서 401오류가 계속 나더라고요. 이유를 찾아보니

val accessToken = runBlocking { dataStoreRepository.getStringValue(ACCESS_TOKEN).first() }
if (accessToken.isNotEmpty()) {
   // 홈 화면 이동
} else  {
   // 로그인 화면 이동
}

기기 내부의 accessToken유무만으로 홈화면으로 이동시키고 있어서 만료된 엑세스 토큰을 가지고 계속 요청해서 이런 일이 발생한것 같습니다 :(

해당 로직을 긴급하게나마 다음과 같이 바꿨는데요

val refreshToken =
    withContext(ioDispatcher) { dataStoreRepository.getStringValue(REFRESH_TOKEN).first() }
Log.i("[REFRESH_TOKEN] : ", refreshToken)
if (refreshToken.isNotEmpty()) {
    refreshToken(refreshToken)
} else {
    naviagateToLogin()
}

앱 진입 시 초기 스플래쉬 내부에서 기기 내부의 리프레쉬 토큰을 통해 재 발급 받은 후 앱에 들어가는 방식으로 수정하였습니다. 런웨이도 이와 비슷한 방식으로 진행하고 있어서 이런 방식은 어떨까 싶습니다.(cc. @DongChyeon )


런웨이의 경우는 refresh토큰을 통해 accessToken, refreshToken 둘 다 재 발급 받는데 저희 API에서는 POST : /refresh 에서 accessToken밖에 재발급 해주지 않는 것 같아요.

내부적으로 리프레쉬 토큰이 연장되거나 그런게 아니면 리프레쉬토큰도 같이 재발급 해주시면 이것도 프론트에서 저장해두고 두고두고 사용하겠습니다. (cc. @imenuuu )

@dlgocks1 dlgocks1 added the bug Something isn't working label Nov 1, 2023
dlgocks1 added a commit that referenced this issue Nov 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant