JWT는 어디에 저장해야할까? - localStorage vs cookie

js variable은 웹페이지를 새로고침하면
사라지는 휘발성이다.

JWT를 private variable에 저장하는 것은 안되진 않지만
사용자 입장에서 화면을 새로고침할 때마다 새로 로그인을 해야한다면 어떨까?

? 결론

1. best option

가장 좋은 방법으로는
refresh token을 사용하는 방법이 있다.

백엔드 api 개발자와 소통이 가능하다면
refresh token을 httpOnly 쿠키로 설정하고
url이 새로고침 될 때마다 refresh token을 request에 담아
새로운 accessToken을 발급 받는다.
발급 받은 accessToken은 js private variable에 저장한다.

 

***

베스트 옵션이라고 해도,  어차피 쿠키에 저장된 refresh token을 탈취하며 같은 것 아닌가요? (secure 옵션을 키면 탈취 불가능?)

 

 

 

 

|

댓글 7개

http only 라는 옵션도 있는 것 같습니다.
이런 글도... 있네요. 아직 저는 JWT까지 이르지 못한 것 같아요... ㅜㅜ;
엑세스토큰는 아니고, 리프레쉬만 거기(secure, only)에 담자... 뭐 그런 이야기가 읽다보면 나오는 것같아요.


https://velog.io/@yaytomato/%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%90%EC%84%9C-%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0
@xpem 종합해 보면, Refresh Token은 쿠키에 저장하고 Secure, Http only 옵션을 켜서 사용하고,
Access Token은 Payload로 보내는 것이죠. Bearer 토큰같은 방법으로..
여기서 Access token으 저장 방식은 JS Private 변수로.. (보내주신 글에서는 그냥 로컬에 저장)
@마젠토 그런 것 같습니다. 제겐 너무 머나먼 길이예요. 이제 뷰 약간씩 보고 있어용... ㅜㅜ;a
저도 jwt 토큰을 해봤는데... 확실히 passport 보다 편하기는 한데
이해하는데 오래걸리더라구요 ㅋ
@나이스김 passport도 토큰을 사용하는 라이브러리 아닌가요?
앱도 생각하면 쿠키가 낫겠어요
댓글을 작성하시려면 로그인이 필요합니다. 로그인

RESTful

+
제목 글쓴이 날짜 조회
2년 전 조회 968
2년 전 조회 841
2년 전 조회 1,075
2년 전 조회 2,849
3년 전 조회 584
3년 전 조회 924
3년 전 조회 756
3년 전 조회 1,392
4년 전 조회 1,061
4년 전 조회 1,155
4년 전 조회 1,566
4년 전 조회 1,382
4년 전 조회 1,765
4년 전 조회 1,695
4년 전 조회 1,869
4년 전 조회 1,567
4년 전 조회 1,479
4년 전 조회 1,574
4년 전 조회 1,676
4년 전 조회 1,501
4년 전 조회 1,872
4년 전 조회 1,512
4년 전 조회 1,241
4년 전 조회 1,301
4년 전 조회 1,212
4년 전 조회 1,098
4년 전 조회 1,318
4년 전 조회 1,026
4년 전 조회 830
4년 전 조회 1,484
🐛 버그신고