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

Ryan Kim님의 프로필 이미지

작성한 질문수

맛집 지도앱 만들기 (React Native + NestJS)

[3-8] React Query 도입(1) - API 추가하기

refresh token 에 대하여

해결된 질문

24.06.10 21:46 작성

·

240

·

수정됨

2

안녕하세요.

[3-8] React Query 도입(1) 강의를 수강하던 중 질문이 생겼습니다.

 

저는 백엔드 개발자로 일하고 있고, RN 을 취미로 공부하고 있는 개발자입니다.

 

보통 웹 환경에서는 보안상의 이유로 refresh token 을 서버에서 secure cookie 로 set 하고, 클라이언트측에서는 읽거나 수정하지 못하게 하고, 로그아웃 시에도 서버에서 해당 refresh token cookie 를 날려(delete)주는데,

 

  1. 모바일 환경에서는 refresh token 을 response body 로 받는 방법밖에 없는걸까요? (웹 브라우저 환경처럼 다른 선택지가 있는지 ex. 쿠키)

  2. refresh token 을 상용 앱 개발에서도 이렇게 다루는지 궁금합니다! (response body 로 받아서 Encrypted storage 에 저장해서 사용)

  3. 만약 그렇다면 이렇게 했을때 보안적으로 큰 문제가 없기 때문에 이렇게 사용하는 것일까요?

 

감사합니다.

답변 3

2

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

2024. 06. 10. 22:42

말씀하신것처럼 앱에서는 세션 쿠키 같은 매커니즘이 없기때문에 (방법은 있지만) 토큰 기반 인증이 선호되는것 같습니다. 제 방법이 정답이라기보다는 설계에따라 케바케라고 생각해주세요. encryptStorage는 현업에서도 많이 사용합니다!

1

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

2024. 06. 10. 21:51

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

Ryan Kim님께서 제기하신 refresh token 관련 질문은 매우 중요한 보안 사항을 다루고 있습니다. 모바일 개발 환경에서의 refresh token 취급 방법에 대한 이해는 앱의 보안성을 크게 좌우할 수 있기 때문입니다. 간략히 요약드리면,

  1. 모바일 환경에서의 refresh token 취급: 모바일 앱 개발에서도 보안을 위해 refresh token은 클라이언트 사이드에서 직접적으로 접근하거나 수정할 수 없어야 합니다. 보통은 secure storage 옵션을 사용하여 기기 내에 보안적으로 저장하게 됩니다. 이는 서버에서 secure cookie로 설정하는 웹 환경과 유사한 보안 조치의 일환입니다.

  2. 상용 앱 개발에서의 사용법: 대부분의 상용 앱에서도 비슷한 방식을 취합니다. 예를 들어, response body로 refresh token을 받아서 앱 내 secure storage(예: Android의 Keystore, iOS의 Keychain)에 안전하게 저장하여 관리하게 됩니다. 이러한 방법은 널리 사용되고, 관련 보안 이슈를 극복하기 위한 다양한 기술적 조치와 함께 구현됩니다.

  3. 보안적 문제: secure storage를 올바르게 사용한다면, refresh token을 저장하는 행위 자체는 보안적으로 큰 문제는 없습니다. 중요한 것은 secure storage의 취약점을 최소화하고, 토큰을 안전하게 취급하기 위한 추가적인 보안 조치를 갖추는 것입니다. 예를 들어, 앱이 자주 접근하는 refresh token이 노출되지 않도록 주의를 기울여야 합니다.

질문하신 내용과 유사한 상황에 대해 다루고 있는 이전 답변이 있어 링크를 첨부 드립니다. 이 경우, 회원가입 및 로그인 API 요청 후 refreshToken 처리에 대한 구체적인 사례 및 해결 방안을 제시하고 있습니다. 아래 링크에서는 refresh token을 어떻게 안전하게 취급해야 하는지에 관한 구체적인 설명을 찾아보실 수 있습니다.

refresh token 및 보안이 중요한 주제인 만큼, 제공된 링크와 함께 secure storage 옵션의 정확한 사용법 및 best practices를 추가적으로 검토하는 것을 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

Ryan Kim님의 프로필 이미지
Ryan Kim
질문자

2024. 06. 10. 21:52

AI 성능 확실하구만

Ryan Kim님의 프로필 이미지

작성한 질문수

질문하기