[DAY44] universal-cookie 쿠키 만료 시간 설정하기

Inseo·2023년 3월 21일

항해99

목록 보기
42/63
post-thumbnail
  1. 문제
    서버에서 토큰 만료 시간을 2시간으로 설정해 두었는데, 쿠키에 저장된 토큰여부에 따라 조건부 렌더링을 하다 보니 만료된 토큰이 저장되어 있어도 화면상으로는 로그인 된 것처럼 보임. 설정한 시간이 지나면 쿠키가 자동으로 삭제될 수 는 없을까? 에 대해 고민하게 됨.

  2. 시도
    공식문서의 옵션 중, expires (Date): absolute expiration date for the cookie를 보고 적용시켜 보았음

const cookies = new Cookies();
const token = 서버에서 보내준 토큰값
const date = new Date();
// 생략
cookies.set("token", token, {path: "/", expires:계산한날짜})

근데 날짜를 계산해서 하기가 너무 힘듦. 아무래도 이 방법이 아닌것같음. 왠지 지금부터 몇시간 후! 이런 설정이 분명 있을 것 같아서 공식문서를 더 찾아봄

  1. 해결
    maxAge (number): relative max age of the cookie from when the client receives it in seconds
    라는 항목이 있었다..
    기준은 초로 계산되는 것..
    따라서 코드를 다음과 같이 작성하면 된다.
const cookies = new Cookies();
const token = 서버에서 보내준 토큰값

cookies.set("token", token, {path: "/", maxAge:7140})

7140초인 이유는 서버에서 토큰 유효 시간을 2시간으로 설정해 줬을 때, 완전히 서버에서 설정한 시간과 같게 하는 것 보다는 1분정도 빨리 쿠키가 삭제되는 편이 더 안전한 것 같았기 때문이다.

  1. 알게된 점
    공식문서에 다 나와있다.. 그 중 이거저거 시도를 많이해보자. 라이브러리를 커스터마이징 하는것은 재밌는 것 같다.

참고링크 https://www.npmjs.com/package/universal-cookie?activeTab=readme

profile
항상 피곤한 인서의 개발블로그

0개의 댓글