전임자가 남긴 dotnet 핵심 백그라운드 서비스를 배포 중입니다. 서버의 프런트 엔드 코드를 조심스럽게 수정하고 ajax 요청 주소를 localhost로 변경했습니다. 로그인 및 요청 데이터는 정상입니다. 그런데 localhost를 IP 주소로 변경했더니 로그인이 정상적으로 되고 쿠키가 반환되는 것을 확인했습니다. 그런데 로그인 상태를 확인(백그라운드로 요청을 보내고 쿠키가 전달되었는지 확인)할 때 계속 오류가 발생했습니다. 401
이 프로그램의 프론트엔드도 백엔드도 내 것이 아닙니다. 제가 작성하고 프론트엔드 개발을 요청했습니다.
쿠키가 성공적으로 반환되었지만 쿠키 요청 헤더가 전달되지 않았습니다. 후속 요청. 이상했는데 다음을 발견했습니다.
프롬프트에 따르면 브라우저는 쿠키를 저장하려고 했지만 보안 설정으로 인해 Set-Cookie가 차단되었습니다.
그럼 Secure를 제거하겠습니다!
동시에 samesite=none도 수정해야 합니다. 왜냐하면 samesite=none은 secure와 함께 사용해야 하기 때문입니다. 값을 strict로 변경할 수 있습니다
Strict 규칙이 가장 엄격하며 세 번째로 보내는 것은 완전히 금지됩니다. -사이트 간 액세스 상황에 관계없이 파티 쿠키. 쿠키는 현재 페이지의 URL이 요청된 대상과 일치하는 경우에만 전달됩니다.
nginx 설정:
proxy_cookie_flags ~ nosecure samesite=strict;
좀 더 이야기해 보겠습니다.
보안 쿠키 속성은 https 환경에서만 액세스할 수 있습니다. https 환경에서 http 환경으로 마이그레이션 중입니다(이 역방향 안전하지 않은 방법은 아직 배울 필요가 없습니다). .
제가 설정한 nginx는 아래와 같으나, 구체적인 상황에 따라 실제 사용을 고려해야 합니다.
location /rf/ { proxy_pass http://localhost:5001/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-PORT $remote_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cookie_path / /; proxy_set_header Cookie $http_cookie; proxy_cookie_flags ~ nosecure samesite=strict; }
위 내용은 쿠키를 저장하도록 nginx 클라이언트를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!