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

박혀누님의 프로필 이미지

작성한 질문수

차세대 Node.js 백엔드 서버 개발(Fastify & Prisma & Typescript와 함께하는)

인증구현 -refresh

앱에 refreshToken을 전송할때 궁금한점이 있습니다.

24.10.03 23:03 작성

·

22

0

앱은 쿠키가 따로 없는걸로 알고있습니다 웹과 앱을 제작할때 서버를 하나만 사용하게된다면 refreshToken에대한 처리는 어떻게 해주는게 좋을까요??

답변 2

0

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

2024. 10. 05. 00:14

개인적으로 저는 보통 웹 기반의 서비스와 하이브리드앱 제작을 주로 해서 네이티브에 대한 지식은 한정적이라는 것을 우선 양해 부탁드리겠습니다.

jwt의 핵심은 결국 json 키를 이용한 인증이기 때문에 cookie를 사용할 수 없는 환경이라면 access token과 마찬가지로 json 파일을 header등에 실어 보내는 방법이 가장 심플한 방법일 것으로 예상됩니다.

대신 키의 저장을 ios나 안드로이드에서 좀 더 안전한 곳에 보관할 수 있는 방법을 찾아 관리를 해야 할 것으로 예상됩니다.

박혀누님의 프로필 이미지
박혀누
질문자

2024. 10. 05. 22:34

답변감사합니다~~!

0

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

2024. 10. 03. 23:06

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

웹 애플리케이션과 모바일 앱 모두에서 같은 서버를 사용하고 있는 경우, refreshToken 처리는 조금 다르게 접근할 필요가 있습니다. 모바일 앱은 웹과 달리 쿠키를 기본적으로 지원하지 않기 때문에, 일반적으로 HTTP 헤더나 스토리지에 토큰을 저장하고 관리하는 방식이 사용됩니다.

권장되는 접근 방식:

  1. 헤더를 사용: refreshToken을 안전하게 저장할 수 있는 방법으로, 각 요청 시 필요에 따라 적절한 HTTP 헤더에 토큰을 포함하여 보낼 수 있습니다.

  2. 안전한 저장소 사용: 모바일 앱에서는 토큰을 안전하게 저장하기 위해 보안이 강화된 장소, 예를 들어 iOS의 Keychain이나 Android의 Secure Storage를 사용할 수 있습니다.

  3. 서버에서 다른 클라이언트 식별: 서버 측에서 요청이 웹으로부터 온 것인지, 모바일 앱으로부터 온 것인지 구분하여 처리하는 로직을 구현하는 것도 도움이 될 수 있습니다. 이를 통해 각 클라이언트에 더 특화된 보안 조치를 취할 수 있습니다.

관련된 자세한 질문과 답변은 아래 링크들을 참조하실 수 있습니다:
1. 로그인과 인증: 웹과 앱에서의 차이점과 상호작용
2. 쿠키 없이 refreshToken을 안전하게 관리하는 방법

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