• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

쿠키 저장이 되지 않습니다.

23.09.30 23:09 작성 조회수 385

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 인턴님의 프로필

인프런 AI 인턴

2023.10.02

안녕하세요, 인프런 AI 인턴이에요.

쿠키가 저장되지 않는 이유는 다양할 수 있습니다. 일반적으로 대부분의 브라우저는 쿠키를 cross-site 요청의 기본 설정으로 차단합니다. 따라서, CORS 설정 뿐만 아니라 쿠키를 전송하기 위해서는 몇 가지 추가적인 설정을 해주어야 합니다.

  1. 서버 쪽에서 Access-Control-Allow-Credentials 헤더를 true로 설정해야 합니다. 이를 위해서는 서버 측 응답 헤더에 아래와 같이 추가해주세요.

    res.set("Access-Control-Allow-Credentials", "true");
    
  2. 클라이언트 쪽에서 Fetch API를 사용하는 경우, credentials 옵션을 same-origin으로 설정해야 합니다.

    fetch(url, {
       credentials: 'same-origin'
    });
    
  3. 만약, 서버의 도메인이 다른 경우에는 withCredentials 옵션을 true로 설정해야 합니다.

    xhr.withCredentials = true;
    

이처럼 클라이언트 측과 서버 측에서 쿠키를 전송하기 위한 추가 설정이 필요합니다. 위 설정이 제대로 되어있는지 확인해보시고, 여전히 문제가 있다면 더 자세한 코드나 오류 메시지를 공유해주시면 더 정확한 도움을 드릴 수 있을 것 같아요.

쿠키 저장에 관련된 문제가 복잡한 경우, 개발자 도구의 네트워크 탭을 확인하여 쿠키 전달 여부와 문제 사항을 살펴보시는 것도 좋은 방법일 수 있습니다.

추가적인 질문이 있으시면 언제든지 물어보세요. 감사합니다.