>  기사  >  백엔드 개발  >  리디렉션 중에 다른 도메인에 대한 쿠키 또는 헤더를 설정하는 방법은 무엇입니까?

리디렉션 중에 다른 도메인에 대한 쿠키 또는 헤더를 설정하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-01 03:19:28296검색

How to Set Cookies or Headers for a Different Domain During a Redirect?

한 도메인에서 다른 도메인으로 리디렉션하고 다른 도메인에 대한 쿠키 또는 헤더를 설정하는 방법은 무엇입니까?

HTTP 리디렉션에서는 대상에 대한 사용자 정의 헤더 또는 쿠키 설정을 허용하지 않습니다. 도메인. 또한 브라우저는 Set-Cookie 헤더로 응답하는 도메인과 다른 도메인에 대한 쿠키 설정을 방지합니다.

해결책 1: 쿼리 매개변수로 리디렉션한 다음 쿠키 설정

  1. 다음에서 리디렉션 쿼리 매개변수로 액세스 토큰이 전달된 도메인 A에서 도메인 B로.
  2. 도메인 B는 요청을 수신하고 토큰을 사용하여 자체 쿠키를 설정합니다.

해결책 2: Cross-Origin Window.postMessage()와의 통신

  1. 도메인 B를 가리키는 도메인 A에 숨겨진 iframe을 추가합니다.
  2. Window.postMessage()를 사용하여 도메인 B에 액세스 토큰을 보냅니다.
  3. 도메인 B는 토큰을 localStorage에 저장하거나 JS를 사용하여 쿠키를 설정합니다.
  4. 도메인 A에 토큰이 저장되었다는 메시지를 보내고 사용자를 도메인 B로 리디렉션합니다.

해결 방법 3: 서버 측 토큰 교환

  1. 액세스 토큰을 쿼리 매개변수로 사용하여 도메인 B를 가리키도록 도메인 A의 태그.
  2. 도메인 B는 요청 수신 시 Set-Cookie 헤더로 응답합니다.
  3. 가져오기 또는 XMLHttpRequest(자격 증명 포함)를 사용합니다. 및 CORS 활성화) 토큰을 도메인 B로 직접 보냅니다.
  4. 도메인 B는 액세스 토큰을 받으면 쿠키를 설정합니다.

중요 사항:

  • 솔루션 2와 3이 작동하려면 브라우저 설정에서 모든 쿠키를 활성화해야 합니다.
  • SameSite=None을 사용하세요. 솔루션 3에 대한 쿠키의 보안 플래그.
  • 솔루션 1의 쿼리 문자열은 액세스 토큰을 노출하고 보안 위험을 초래합니다.
  • 솔루션 3을 사용하려면 대상 도메인에서 CORS를 활성화하고 도메인에서 명시적인 원본 사양을 지정해야 합니다. 서버측.

위 내용은 리디렉션 중에 다른 도메인에 대한 쿠키 또는 헤더를 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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