테스트 사이트 - 개발 중인 베타 버전입니다

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

· 4년 전 · 1789 · 7

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
3년 전
저도 jwt 토큰을 해봤는데... 확실히 passport 보다 편하기는 한데
이해하는데 오래걸리더라구요 ㅋ
@나이스김 passport도 토큰을 사용하는 라이브러리 아닌가요?
앱도 생각하면 쿠키가 낫겠어요

게시글 목록

번호 제목
416
415
394
375
373
368
367
364
362
360
358
356
353
351
345
344
332
329
315
309
308
300
299
294
287
281
272
270
266
265