[JWT] cookie에 token 저장하기

김시아·2023년 2월 26일
0

Frontend-bug

목록 보기
1/1

(작성중 ...)

두 개의 사이드 프로젝트에서 JWT를 이용한 로그인을 구현하던 중
백엔드에서 cookie에 token을 넣어주기로 했는데, 저장이 되지 않았다!

상황 1)

  • access token: cookie에 backend에서 저장
  • refresh token: redis 저장
  • 배포된 도메인: http 사용
  • api 호출 url: http 사용

네트워크 탭 경고로는 samesite=none 처리를 하라고 조언했는데,
samesite 속성으로 none을 사용하려면 반드시 해당 쿠키는 secure 쿠키여야 한다😱
(secure 쿠키는 https가 적용된 요청에만 전송되는 쿠키이다)
도메인에 https를 연결해서 해결이 된다 하더라도, 로컬은 http이기 때문에
환경에 따라 로컬이면 accesstoken을 api 결과로 받고 프론트에서 저장해서 사용하고,
배포시 백엔드에서 넣어서 사용하기로 했다.

const setAccessToken = (value: string) => {
    const loc = window.location.href;
    if (loc.includes('localhost')) {
        document.cookie = 'accessToken=' + value + ';path=/;max-age=3600;secure';
    }
};

상황 2)

  • access token: local storage에 저장
  • refresh token: cookie에 backend에서 저장
  • 배포된 도메인: https 사용
  • api 호출 url: http 사용

0개의 댓글