작성
·
615
0
res.set("Set-Cookie", cookie.serialize("token", token, {
httpOnly: true,
maxAge: 60 * 60 * 24 * 7,
path: "/",
}))
프론트에 credentials을 true로 하고 cors 부분에도 credentials를 true로 했지만 application/cookie에 저장이 되지 않습니다. header에 response로 토큰은 잘 들어오는데 뭐가 문제일까요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
쿠키가 저장되지 않는 이유는 다양할 수 있습니다. 일반적으로 대부분의 브라우저는 쿠키를 cross-site 요청의 기본 설정으로 차단합니다. 따라서, CORS 설정 뿐만 아니라 쿠키를 전송하기 위해서는 몇 가지 추가적인 설정을 해주어야 합니다.
서버 쪽에서 Access-Control-Allow-Credentials 헤더를 true로 설정해야 합니다. 이를 위해서는 서버 측 응답 헤더에 아래와 같이 추가해주세요.
res.set("Access-Control-Allow-Credentials", "true");
클라이언트 쪽에서 Fetch API를 사용하는 경우, credentials 옵션을 same-origin으로 설정해야 합니다.
fetch(url, {
credentials: 'same-origin'
});
만약, 서버의 도메인이 다른 경우에는 withCredentials 옵션을 true로 설정해야 합니다.
xhr.withCredentials = true;
이처럼 클라이언트 측과 서버 측에서 쿠키를 전송하기 위한 추가 설정이 필요합니다. 위 설정이 제대로 되어있는지 확인해보시고, 여전히 문제가 있다면 더 자세한 코드나 오류 메시지를 공유해주시면 더 정확한 도움을 드릴 수 있을 것 같아요.
쿠키 저장에 관련된 문제가 복잡한 경우, 개발자 도구의 네트워크 탭을 확인하여 쿠키 전달 여부와 문제 사항을 살펴보시는 것도 좋은 방법일 수 있습니다.
추가적인 질문이 있으시면 언제든지 물어보세요. 감사합니다.