우리 서비스는 OAuth2.0을 사용해 구글, 깃허브 로그인을 진행하고, 이후에 얻어지는 서버 자체의 JWT토큰을 set-cookie를 통해 httpOnly쿠키를 set해주는 방식으로 인증을 구현했다.
들어가기에 앞서 우리 서비스의 쿠키 옵션을 살펴보자.
httpOnly | O |
---|---|
secure | O |
same-site | lax |
httpOnly
JS로는 쿠키를 조작할 수 없다.
secure
https일 때 만 전송된다.
same-site: lax
같은 host인 경우에 전송함
이때 비교하는 값은 브라우저 주소창의 주소와 cookie의 domain이다.
(서브 도메인도 같은 host다. api.algoitni.site ↔ algoitni.site는 same-site다.)
배포에서는 api.algoitni.site와 algoitni.site가 같은 도메인이므로 set-cookie를 통해 받아온 쿠키가 api요청에 잘 담겨서 전송된다.
하지만, 로컬에서 개발시에는 localhost와 api.algoitni.site간의 api통신이므로 set-cookie를 통해 받아온 쿠키를 담아서 전송하지 않게된다. 심지어 httpOnly이므로, 직접넣어줄수도 없다!