>백엔드 개발 >Golang >내 브라우저가 React 앱의 My Go 서버에서 설정한 쿠키를 저장하지 않는 이유는 무엇입니까?

내 브라우저가 React 앱의 My Go 서버에서 설정한 쿠키를 저장하지 않는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-01 13:02:09677검색

Why Doesn't My Browser Store Cookies Set by My Go Server in a React App?

브라우저가 쿠키 저장을 거부

문제 설명

Go 서버와 통합된 React 애플리케이션에서 서버는 쿠키 설정을 시도합니다. 로그인 응답. 그러나 쿠키는 네트워크 탭의 응답으로 반환됨에도 불구하고 브라우저에 저장되지 않습니다.

탐색

제공된 코드 조각은 다음을 나타냅니다.

  • 교차 출처 리소스 공유(CORS)는 자격 증명을 허용하도록 구성되어 있습니다.
  • http.SetCookie() 함수는 다음 설정을 사용하여 응답에 쿠키를 추가하는 데 사용됩니다.

    • 이름: "accessToken"
    • 값: 토큰
    • Max 나이: 정수로 지정
    • 경로: "/api"
    • HTTP 전용: true
    • SameSite: LaxMode

네트워크 탭의 스크린샷은 쿠키가 실제로 응답 헤더로 다시 전송되고 있음을 보여줍니다.

솔루션

이 문제를 해결하는 열쇠는 Fetch API의 자격 증명 플래그에 있습니다. 응답에서 쿠키를 예상하는 가져오기 요청을 할 때 자격 증명을 "include"로 설정하는 것이 중요합니다.

편집된 코드:

fetch(`${url}/login`, {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
    },
    credentials: "include", // This line has been added
    body: JSON.stringify({
        email: userDetails.email,
        password: userDetails.password,
    }),
}).then((response) => { ...

자격증명을 "include"로 설정하면, 브라우저는 응답에 포함된 쿠키를 수락하고 저장해야 한다는 것을 이해합니다. 이 구성을 사용하면 브라우저가 쿠키를 올바르게 저장하고 후속 요청에 사용할 수 있게 됩니다.

위 내용은 내 브라우저가 React 앱의 My Go 서버에서 설정한 쿠키를 저장하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.