강의

멘토링

로드맵

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

yeong님의 프로필 이미지
yeong

작성한 질문수

아바타 커뮤니티앱 만들기 (React Native Expo)

클라이언트 사이드에서 세션 관련 질문

작성

·

16

0

서버쪽 코드의 .env 파일을 보면 JWT이 기본적으로 20분으로 설정되어 있는 것을 보았습니다. 예를 들어 JWT이 만료가 되고 이어서 진행을 하게 된다면, AuthRoute에 해당되는 경로들을 클라이언트에서는 여전히 접근이 가능하지만 서버에서 400번대를 응답합니다. 일반적으로 앱을 사용했던 경험을 생각하면 앱의 세션은 웹에 비해서 매우 길거나 백엔드에 대한 지식은 충분하지 않아 모르겠지만, 백엔드에서 새로 접속시 연장을 하는 등의 방법이 생각 나는데요 이런 경우에 클라이언트에서는 어떻게 처리를 해야하는지 아니면 실무적으로는 어떻게 처리하는 지 궁금합니다. 혹시라도 추가로 검색해서 공부할 수 있는 키워드가 있다면 알려주실 수 있을까요?

답변 2

0

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

이 강의에서는 복잡도를 낮추기위해 사용하진않았지만 ai답변과 같이 토큰을 갱신하는 방법도 있습니다.

제 다른강의인 맛집지도앱 만들기 라는 강의에서는 이 방식을 사용하는데요, 과정을 설명하는 수업이 있는데 3-7수업을 참고해보시겠어요? https://inf.run/2LN7d

(해당수업은 무료로 공개되어있어서 수강신청 하지않으셔도 보실수 있습니다.)

 

 

yeong님의 프로필 이미지
yeong
질문자

아 그러면 이 강의 끝나고 이미 구매한 다음 강의 따라가면서 보겠습니다.

그러면 AI 답변 중 3번 장기 세션 유지부분에 대해서 추가적으로 질문을 하자면, 이미 auth쪽 구현을 할 때 Secure Storage를 사용해서 수업 중 구현이 됐는데, 이런 경우에는 원 질문처럼 단순히 기본적으로 설정된 30분의 JWT_ACCESS_TOKEN_EXPIRATION 때문일까요?

그리고 일반적인 경우에는 AI 답변의 1, 2, 3번 모두를 적용해서 기본적으로 웹에 비해 긴 세션을 가지고, 앱 접속시 refresh를 하고, 그 기간이 넘어갈 동안 유저가 접속하지 않는다면 자동 로그아웃을 시키는 방법을 쓸 것 같다고 추측이 되는데 이런 방식이 일반적인지도 궁금합니다.

0

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

yeong님께서 클라이언트 사이드에서의 세션 처리와 관련하여 질문을 주셨네요. 모바일 앱에서는 웹과는 조금 다른 방식으로 세션을 처리하는 경우가 많습니다. JWT 토큰 만료와 관련된 문제는 보통 다음과 같은 방식으로 해결할 수 있습니다:

  1. 토큰 갱신(Refreshing Token): 일반적인 방식은 AccessToken이 만료되었을 때, RefreshToken을 사용하여 새로운 AccessToken을 발급받는 것입니다. 앱 실행 초기나 백그라운드에서 자동으로 이 과정을 처리하여 사용자는 지속적인 로그인 상태를 유지할 수 있도록 합니다.

  2. 자동 로그아웃: 사용자에게 명확한 가이드 없이 백엔드에서의 응답이 401 Unauthorized인 경우, 클라이언트는 사용자를 로그아웃 처리하여 재로그인하도록 유도하는 것도 한 방법입니다.

  3. 장기 세션 유지: 앱에서는 Web과 달리 사용자가 앱을 한번 로그인하면 지속적으로 사용할 수 있도록 Secure Storage를 활용하여 장기간 토큰을 안전하게 저장하는 방법도 고려됩니다.

추가적으로, 아래의 키워드들을 검색하여 현재 이슈나 관련 해결 방법을 더 학습하실 수 있습니다:
- “JWT Refresh Token Android” 또는 “JWT Refresh Token iOS”
- “React Native Secure Storage”
- “Token Expiration Handling in Mobile Applications”

관련하여 유사한 상황을 다룬 답변이 있는 링크를 아래에 첨부합니다. 이 링크들을 참고해보시면 도움이 될 것입니다:
- 로그아웃 관련해서 질문 있습니다.
- 캐싱관련 질문있습니다.

이전 답변에서는 토큰 만료와 로그아웃 처리, 그리고 캐싱 문제와 관련된 내용을 다루고 있습니다. 클라이언트 사이드에서의 세션 관리 및 로그인 상태 유지에 대해 보다 상세한 정보를 얻을 수 있을 것입니다.

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

yeong님의 프로필 이미지
yeong

작성한 질문수

질문하기