inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

모바일에서 jwt 보관

251

노른자

작성한 질문수 81

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은 필요없을것같은데, 물론 유저가 해킹당한 낌세를 못느끼면 그만이지만,,,,

express nodejs mongodb ssr NestJS

답변 0

프로젝트 환경 세팅할 때 최신 노드 버젼을 사용하시는 분들은 참고하셔도 좋을 것 같아요~

2

101

1

DTO에 대한 질문

1

97

2

백엔드 MVC에서 View의 역할은 무엇인가요?

1

111

2

추가 업데이트 관련 건

0

105

2

nest js 버전문제

0

95

2

mongdb 스키마 공식 문서와 형태가 다른 이유 궁금합니다.

0

112

1

라인 끝에 에러 표시(eslint) 때문에 구글 찾아 보니.

0

83

1

전체 고양이 조회 라우터 중 error.message 오류

0

79

1

캡슐화 추가 설명 중 단일책임원칙 관련 질문

0

115

0

42강 고양이끼리 소통 댓글 구현 중 Schema hasn't been registered for model 'comments' 에러 해결

0

86

1

채팅 이슈

0

137

1

모듈이 더 이상 지원하지 않는답니다

0

215

1

오류가 있습니다

0

114

1

import 에서 오류가 납니다

0

131

1

이런 오류가 나옵니다

0

106

1

에러가 발생합니다

0

117

1

프론트 에러 뜨는데 수정 안해주시나요

0

166

1

emit() broadcast.emit() 질문있습니다

0

107

1

서버연결이 안됩니다.

1

408

1

[PM2][ERROR] Command not found

0

528

1

S3에 업로드까지는 성공했는데 사진이 나오지 않습니다.

0

254

1

error_code : Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.ts(2339)

0

607

1

jwt를 따로 연습하고 있는데 env를 못읽는 것 같습니다.

0

330

2

Ec2로 안하시는 이유가 있을까요?

0

345

1