.
본문 바로가기
삽질의기록

react cookie에서 httpOnly 옵션에 관하여

by 와칸다개발자 2021. 10. 27.

토큰기반 로그인 구현 중 

 

jwt에서 서명한 토큰을 브라우저에 쿠키로 저장하기로 했다. 

 

document.cookie 명령어에 의해 쿠키 탈취를 막고자 다음과 같이 옵션을 넣어 작성했다.

 

   cookie.set('accessToken', res.token,{
     path : '/',
     httpOnly : true
   })

 

httpOnly 옵션은 스크립트로 인한 쿠키 탈취를 막는다. 

 

하지만 문제가 있는데 

 

You can only set domain cookies for registry controlled domains, i.e. something ending in .com or so, but not IPs or intranet hostnames like localhost

 

 

출저 : https://stackoverflow.com/questions/8134384/chrome-doesnt-create-cookie-for-domain-localhost-in-broken-https

 

http 옵션사용시 i,e나 도메인 환경에서만 쿠키가 저장된다고 말하고 있다. 

 

현 개발환경인 ip 즉 localhost : port 등으로 개발하고 있으므로 httpOption에 쿠키는 저장되지 않는다. 

 

해결책은 쉽다.

 

   cookie.set('accessToken', res.token,{
     path : '/',
     httpOnly : process.env.NODE_ENV !== "development"
   })

 

procee.env.NODE_ENV 는 개발환경에서 "development" 라는 값을 뱉는다.

 

실제 도메인환경에서 true로 httpOption은 잘 작동될(?) 것이다.

댓글