인프런 커뮤니티 질문&답변
모바일에서 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은 필요없을것같은데, 물론 유저가 해킹당한 낌세를 못느끼면 그만이지만,,,,
답변





.png?w=112)