인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

sevenfingersstudio님의 프로필 이미지

작성한 질문수

[중급] 맛집 지도앱 만들기 (React Native + NestJS)

AccessToken 만료시 홈화면 이동이 안되는거 같은데요?

해결된 질문

작성

·

91

0

질문 작성시 꼭 참고해주세요

  • 현재 문제(또는 에러)와 코드(또는 github)를 첨부해주세요.

     

  • 맥/윈도우, 안드로이드/iOS, ReactNative, Node 버전 등의 개발환경을 함께 적어주시면 도움이 됩니다.

     

  • 에러메세지는 일부분이 아닌 전체 상황을 올려주세요. (

    일부만 자르거나 복사하지말아주세요.)

     

  • 개발환경/코드에 대한 정보가 없을경우 답변이 어렵습니다.

모든 강의를 듣고나서 이것저것 공부를 하던 중

 

실습에서도 AccessToken 만료 테스트를 하신적이 없는거같아서

 

서버단 .env 에서

JWT_ACCESS_TOKEN_EXPIRATION=1m

요렇게 두고

number.ts 소스에서도

 ACCESS_TOKEN_REFRESH_TIME: 1000 * 60 * 1 - 1000 * 60 * 0.7,

이렇게 바꾸어 1분만에 만료되게 해서 테스트 해보니

만료는 되는데 만료된 후

image.png

이렇게 401 에러가 뜨면서 홈화면으로 넘어가지를 않네요...

 

선생님 전체소스를 받아서 테스트를 해보아도 마찬가지입니다..

AccessToken 만료시 테스트가 이루어지지 않은 소스인건지.. 아니면 제가 누락한 부분이 있는걸까요?

답변 2

0

Kyo님의 프로필 이미지
Kyo
지식공유자

만료가되면 인증이되지않았으니 401 에러가 발생합니다. 에러화면은 개발환경에서만 보입니다. 앱을 껐다가 켜도 홈으로 이동하지 않나요?

sevenfingersstudio님의 프로필 이미지

재접속시 홈으로 이동합니다.

배포 후 실제화면에서도 에러가 보이는줄 알았는데

아.. 실제기기에서는 안보이는거군요.. 그럼 실제기기 usb선으로 연결하고 테스트할때 서버는 노트북에 localhost:3030으로 되어있는데 이렇게는 사용이 불가능하지 않나요??

aws 배포하고 사용해야되겠네요?

Kyo님의 프로필 이미지
Kyo
지식공유자

재접속시 홈으로 이동하면 만료가 잘 된것입니다.

sevenfingersstudio님의 프로필 이미지

그런데 말씀하신것처럼 실제기기 에 배포하고 aws에 accesstoken 만료시간 1m으로 만든뒤 테스트 해봐도...

실제기기 에서도 401에러창이 발생하는데...

 

스토어를 통한 배포시에는 안뜬다는 말씀이신건가요??

Kyo님의 프로필 이미지
Kyo
지식공유자

네 프로덕션 환경에서는 저렇게 뜨는 에러 화면은 모두 뜨지않습니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, sevenfingersstudio님. 인프런 AI 인턴입니다.

AccessToken이 만료된 후에 홈 화면으로 이동되지 않는 문제에 대해 문의 주셨군요. 이와 같은 문제는 주로 클라이언트에서 토큰 만료 시 자동으로 리프레시 토큰을 사용하여 새로운 AccessToken을 발급받는 로직이 구현되지 않았거나, 해당 로직이 올바르게 작동하지 않을 때 발생할 수 있습니다.

관련 내용을 다룬 답변이 있는 질문을 추천드립니다. 아래 링크들을 참고하시고, 문제가 여전히 해결되지 않는다면 추가적인 정보나 코드 요청에 따라 도움을 받을 수 있을 것입니다:

  1. 로그아웃 관련해서 질문 있습니다.

    • 이 질문에서는 로그아웃 시 토큰을 제거하고 리프레시 토큰을 통해 새로운 액세스 토큰을 발급받는 과정에 대한 논의가 진행되었습니다. 로그아웃 이후 캐시를 적절히 처리하지 않으면 동일한 문제가 발생할 수 있으니 관련 방안을 확인해 보세요.
  2. 로그인 api 요청 이후 getAccessToken api 401 error

    • 이 질문에서는 getAccessToken 요청 중 401 에러가 발생하는 상황을 실마리로 문제 해결 방법을 다루었습니다. AccessToken 만료와 관련된 상황에서 유용한 정보일 수 있습니다.
  3. 캐싱관련 질문있습니다.

    • React Query 사용 시 캐시가 어떻게 작동하는지와 로그아웃 시 캐시 무효화 관련해서도 도움이 되는 정보를 찾으실 수 있습니다.

AccessToken이 만료되면 종종 로그아웃되지 않고 다음을 시도하게 됩니다:

  • react-query 내에서 Access Token이 만료되었을 때 자동으로 refetch를 하도록 설정하고, refetch가 실패했을 때 별도로 리프레시 토큰을 사용하여 AccessToken을 갱신하는 로직을 구현하는 것이 일반적인 방법입니다.

  • 만약, AccessToken을 갱신하는 과정에서 401 에러가 발생한다면, refetch 로직이 올바르게 설정되지 않았을 수 있습니다.

현재 경험하고 계신 문제를 해결하기 위해서는 위의 자료를 검토하시고, 가능한 경우 연관된 전체 설정 코드백엔드의 응답 상태도 확인해 보시는 것이 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.