강의

멘토링

커뮤니티

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

노른자님의 프로필 이미지
노른자

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

JWT와 로그인 서비스 & 순환 참조 모듈

모바일에서 jwt 보관

작성

·

248

0

질문이 있습니다.

보통 웹 브라우저의 경우

쿠키(httpOnly)에 refreshToken 를 보관하고

로컬스토리지에 accessToken을 저장하는것으로 알고있는데,

 

모바일 앱같은경우엔 jwt를 어디에 보관해야하는지 모르겠습니다. 보통 실무엔 어디에 저장하나요??

 

그리고 refresh토큰을 사용하면 jwt가 가질 수 있는 이점이 줄어드는것같아 accessToken 만 사용하고싶은데, 토큰 탈취가 어떤식으로 이루어지는지는 모르겠으나, 어차피 refresh토큰을 탈취당하면 그것으로 accessToken을 발급받을 수 있으므로, 그냥 refresh토큰을 저장하는곳에 accessToken을 저장하면 되지않나 싶습니다.

요약하자면

1. 모바일앱에서 accessToken만 사용하여도 되는지,

2. 모바일앱에서 accessToken과 refreshToken을 보통 어디에 저장하는지, 알고싶습니다!

 

추가 아이디어

accessToken만 사용할시 보안대책.

1 유저 생성시 디비에 key 컬럼을 만들어 uuid 키를 저장하고 jwt에도 넣는다.

 (뭔가 내 계정이 해킹당한것같다 싶은 낌세가든다면 이후 과정)

2 프론트에서 현재 로그인 되어있는 모든 기기 로그아웃 버튼을 누른다.

3 서버에서 유저의 key컬럼의 uuid키를 바꾼다음 db를 업데이트한다.

4 동시에 jwt도 업데이트하여 새로운 accessToken을 발급한다.

5 기존에 쓰던 jwt는 validate과정에서 키가 db와 일치하지 않으므로 무쓸모가된다.

 

라고 머리 좀 굴려서 생각해봤는데 제 시나리오대로 흘러갈까요...

이러면 refreshToken은 필요없을것같은데, 물론 유저가 해킹당한 낌세를 못느끼면 그만이지만,,,,

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
노른자님의 프로필 이미지
노른자

작성한 질문수

질문하기