>  기사  >  백엔드 개발  >  내 HTTPOnly 쿠키가 Localhost에 설정되지 않는 이유는 무엇입니까?

내 HTTPOnly 쿠키가 Localhost에 설정되지 않는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-25 05:02:11884검색

Why Aren't My HTTPOnly Cookies Being Set on Localhost?

HTTPOnly 쿠키가 브라우저 로컬 호스트에 설정되지 않음

문제:

REST API 로그인 엔드포인트가 페이로드(JWT)가 포함된 HTTPOnly 쿠키를 보내지만 쿠키가 설정되지 않았습니다. 브라우저에서. 이 접근 방식은 수년간 효과가 있었지만 최근에 중단되었습니다. 이 문제는 localhost 환경에만 국한됩니다. Postman 테스트를 통해 쿠키가 예상대로 설정되었는지 확인합니다.

사용된 접근 방식:

  • Go Fiber 및 Node Express에서 로그인 엔드포인트의 핵심 필수 요소를 구현합니다.
  • 프런트엔드를 기본 로그인으로 축소 form.

조사:

Go 및 Node API는 모두 HTTPOnly 플래그가 설정된 Set-Cookie 헤더를 올바르게 보냅니다. 이는 문제가 브라우저나 fetch() 메소드에 있을 수 있음을 나타냅니다.

해결책:

인증 정보: "include" 속성을 추가하여 문제가 해결되었습니다. 프론트 엔드 JavaScript의 fetch() 메소드에. 이 속성은 브라우저에 쿠키를 보내고 받도록 지시합니다.

이유:

HTTPOnly 쿠키는 클라이언트 측 JavaScript가 쿠키 콘텐츠에 액세스하지 못하도록 설계되었습니다. 브라우저는 기본적으로 XHR 또는 fetch() 요청에서 쿠키를 보내지 않음으로써 이를 지원합니다. 자격 증명: "include" 속성을 추가하면 브라우저에 요청과 함께 쿠키를 보내도록 명시적으로 지시하므로 서버에서 쿠키를 수신하고 적절하게 설정할 수 있습니다.

추가 참고 사항:

  • HTTP 요청에 Axios를 사용하는 경우 구성에 자격 증명이 자동으로 포함됩니다.
  • 노드의 경우 Express의 경우 브라우저가 쿠키를 설정할 수 있도록 요청 구성에서 withCredentials: true를 설정해야 할 수도 있습니다.

위 내용은 내 HTTPOnly 쿠키가 Localhost에 설정되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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