inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Tạo ứng dụng cộng đồng avatar (React Native Expo)

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

81

yeong

6 câu hỏi đã được viết

0

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

react-native typescript expo react-hook-form react-query

Câu trả lời 2

0

Kyo

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

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

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

 

 

0

yeong

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

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

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

0

communityai8509

안녕하세요, 인프런 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”

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

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

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

secureTextEntry 설정에 관해

0

58

2

expo 55 tabs 사라짐 이슈

0

82

2

백엔드도 궁금합니다!

1

85

1

댓글 버튼 하단에 고정되지 않는 이슈

0

53

1

SafeAreaView 적용 기준 문의

0

81

2

스크린 옵션 아이콘

0

55

2

[Note] 안드로이드 네비게이션 헤더 이슈 안내

0

65

2

ActionSheet

0

86

1

안드로이드 폰과 PC에서 테스트할때 화면 안보임과 오류 문의

0

99

1

iOS 빌드 후 실기기에서 앱 시작

1

70

1

[5-2] 글 목록 무한스크롤 구현하기 with InfiniteQuery 10:40/ useScrollTop(ref) 사용관련

0

84

2

Android 에뮬레이터 환경설정 및 실행 (for Mac) 에러 문의

0

112

1

[5-13] useLikePost 쿼리 구현 중 Tanstack Query 관련 질문

0

63

1

Expo 54 버전 ios에서 headerLeft

1

139

2

어플 개발 후 배포 시에 주의할 사항이 있을까요?

0

78

1

코드 수정 시 ios 시뮬레이터에서 자동반영이 안 되는데 왜그럴까요?

0

92

1

텍스트가 다 상단위로 올라가있는데 어떻게 해야할까요?

0

78

2

Axios Network error...

0

151

2

강의는 52버전인데 expo가 현재 54버전이에요

0

308

1

[TIP] SafeAreaView 사용할 때마다 자꾸 ios에서 위아래가 빵꾸 나시는 분들 필독

0

235

2

키보드 이슈 관련 해결 질문

0

74

1

android header를 ios처럼 바꾸기

0

70

1

CustomButton 코드 버튼 관련 질문

0

66

1

ios 시뮬로 보다가 android 시뮬로 넘어갈려니깐 오류가 생겨요

0

106

2