HTTPOnly 쿠키가 브라우저 로컬 호스트에 설정되지 않음
문제:
REST API 로그인 엔드포인트가 페이로드(JWT)가 포함된 HTTPOnly 쿠키를 보내지만 쿠키가 설정되지 않았습니다. 브라우저에서. 이 접근 방식은 수년간 효과가 있었지만 최근에 중단되었습니다. 이 문제는 localhost 환경에만 국한됩니다. Postman 테스트를 통해 쿠키가 예상대로 설정되었는지 확인합니다.
사용된 접근 방식:
조사:
Go 및 Node API는 모두 HTTPOnly 플래그가 설정된 Set-Cookie 헤더를 올바르게 보냅니다. 이는 문제가 브라우저나 fetch() 메소드에 있을 수 있음을 나타냅니다.
해결책:
인증 정보: "include" 속성을 추가하여 문제가 해결되었습니다. 프론트 엔드 JavaScript의 fetch() 메소드에. 이 속성은 브라우저에 쿠키를 보내고 받도록 지시합니다.
이유:
HTTPOnly 쿠키는 클라이언트 측 JavaScript가 쿠키 콘텐츠에 액세스하지 못하도록 설계되었습니다. 브라우저는 기본적으로 XHR 또는 fetch() 요청에서 쿠키를 보내지 않음으로써 이를 지원합니다. 자격 증명: "include" 속성을 추가하면 브라우저에 요청과 함께 쿠키를 보내도록 명시적으로 지시하므로 서버에서 쿠키를 수신하고 적절하게 설정할 수 있습니다.
추가 참고 사항:
위 내용은 내 HTTPOnly 쿠키가 Localhost에 설정되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!