사용자에 대한 정보를 인증하고 난뒤에 그 정보를 어떻게 할지에 대해서 생각해보다가,
jwt 토큰에 대해서 찾아보게 되었고, 이때에 이 jwt 토큰을 어디에 저장하는것이 일반적이고 권장되는지에 대해서 알아보기 위해서 검색을 해보았다.
일단 가장 처음에 접하게된 블로그 글의 내용과 출처를 첨부해본다.
https://simsimjae.tistory.com/482
토큰을 어디에 저장해야 안전할까
이 글은 독자가 JWT, 세션등에 대한 이해를 갖고 있다는 전제하에 정리 차원에서 작성한 글입니다. TL;DR 1. 리프레시 토큰은 HTTP ONLY SECURE 쿠키에 저장하자. 2. 액세스 토큰은 프로그램상 자바스크
simsimjae.tistory.com
위와 같은 블로그 내용을 접할 수 있었고,
XSS, CSRF에 대해서 접할 수 있었고, 이에 대해서 어떤식으로 보관해야 하는지에 대해서 힌트를 얻을 수 있었다.
이 블로그에서 추천하는 방법은 공격들을 감안해서
1. 리프레시 토큰은 HTTP ONLY SECURE 쿠키에 저장하자.
2. 액세스 토큰은 프로그램상 자바스크립트 로컬 변수에 저장하고, http 헤더에 bearer 토큰으로 담아서 매 요청마다 보내도록 하자.
3. 로컬스토리지는 사용하지 말자. (보안에 매우 취약)
이었다.
그리고 jwt 방식에서 토큰의 저장 위치에 대한 탐구 방향에 대한 힌트를 얻기 위해서 gpt에 검색한 내용을 첨부해보자면,
위와 같은 답변을 얻을 수 있었다.
위의 두 내용을 조합하여서 이번 프로젝트에서 토큰의 저장 위치를 결정해야겠다.
특히 OAuth 2.0을 기반으로한 카카오 로그인을 구현하고 있기 때문에, 엑세스 토큰 뿐만 아니라 리프레시 토큰 또한 받게 되기 때문에 위 두가지를 구분지어서 생각해주어야 겠다.
그리고 위에 첫번째 참조 블로그에서 얘기했던 것처럼,
리프레시 토큰으로 조용히 토큰 재발급 과정이 일어날 수 있도록 로직을 작성해보도록 하자.
'크래프톤 정글 > 웹' 카테고리의 다른 글
Cookies에서 확인해볼 수 있는 connect.sid에 대하여. (0) | 2023.08.04 |
---|---|
토큰 유형에 대한 구글에서 제공해주는 문서 위치 (0) | 2023.08.03 |
node.js 상에서 axios에 대하여. (0) | 2023.08.02 |
카카오에서 제공해준 카카오 로그인 node.js REST API 예시 코드 (0) | 2023.08.02 |
filter() 메서드를 이용해서 객체를 걸러내는 방법에 대해서. (0) | 2023.08.01 |