쿠키는 유저들의 효율적이고 안전한 웹 사용을 보장하기 위하여 웹 사이트에서 널리 사용되고 있습니다.
쿠키는 웹 사이트 접속 시 접속자의 개인 장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일입니다.
웹 사이트는 쿠키를 통해 접속자의 장치를 인식하고 접속자의 설정과 과거 이용내용에 대해 일부 데이터를 저장합니다.
클라이언트에서 서버로 요청을 보내면 서버에서 클라이언트에 응답으로 쿠키를 보내주며 클라이언트에 저장하게 됩니다.
클라이언트에서 요청할 때마다 쿠키가 포함되며 서버에서는 쿠키를 확인하고 응답을 클라이언트로 보내주게 됩니다.
배포환경에서 발생한 문제점은 쿠키에서 토큰 JWT를 사용하였는데 쿠키에 넣어 로그인에 필요한 옵션마다 쿠키를 확인해주었는데 쿠키를 헤더에 넣어서 통신하기 위해 서버에서 cors옵션을 credentials true를 하고 클라이언트에서도 withCredentials true를 하였는데 배포된 환경에서 쿠키가 담기지 않는 것을 확인하였습니다.
해결 방법으로 쿠키가 먼저 어디에 담기고 있는지 확인하였습니다.
쿠키는 서브도메인에 저장되고 있었습니다. 이를 해결하기 위해 쿠키 옵션에 domain 옵션을 넣었습니다. 그 후 쿠키가 담긴 것을 확인하였으나 로그아웃 후에도 쿠키가 사라지지 않는 것을 확인하였습니다.
이를 해결하기 위하여 같은 이름의 쿠키에 아무런 값이 없는 것을 새롭게 보내주었습니다.
쿠키에 domain 옵션이 없으면 내부 전용 쿠키가 되며 이는 로컬호스트에서만 적용이 됩니다.
그러므로 배포환경에서는 domain 옵션을 사용하여 해당 domain에 쿠키를 전달하여 문제가 해결됩니다.