한 도메인에서 다른 도메인으로 리디렉션하고 다른 도메인에 대한 쿠키 또는 헤더를 설정하는 방법은 무엇입니까?
HTTP 리디렉션에서는 대상에 대한 사용자 정의 헤더 또는 쿠키 설정을 허용하지 않습니다. 도메인. 또한 브라우저는 Set-Cookie 헤더로 응답하는 도메인과 다른 도메인에 대한 쿠키 설정을 방지합니다.
해결책 1: 쿼리 매개변수로 리디렉션한 다음 쿠키 설정
- 다음에서 리디렉션 쿼리 매개변수로 액세스 토큰이 전달된 도메인 A에서 도메인 B로.
- 도메인 B는 요청을 수신하고 토큰을 사용하여 자체 쿠키를 설정합니다.
해결책 2: Cross-Origin Window.postMessage()와의 통신
- 도메인 B를 가리키는 도메인 A에 숨겨진 iframe을 추가합니다.
- Window.postMessage()를 사용하여 도메인 B에 액세스 토큰을 보냅니다.
- 도메인 B는 토큰을 localStorage에 저장하거나 JS를 사용하여 쿠키를 설정합니다.
- 도메인 A에 토큰이 저장되었다는 메시지를 보내고 사용자를 도메인 B로 리디렉션합니다.
해결 방법 3: 서버 측 토큰 교환
- 액세스 토큰을 쿼리 매개변수로 사용하여 도메인 B를 가리키도록 도메인 A의 태그.
- 도메인 B는 요청 수신 시 Set-Cookie 헤더로 응답합니다.
- 가져오기 또는 XMLHttpRequest(자격 증명 포함)를 사용합니다. 및 CORS 활성화) 토큰을 도메인 B로 직접 보냅니다.
- 도메인 B는 액세스 토큰을 받으면 쿠키를 설정합니다.
중요 사항:
- 솔루션 2와 3이 작동하려면 브라우저 설정에서 모든 쿠키를 활성화해야 합니다.
- SameSite=None을 사용하세요. 솔루션 3에 대한 쿠키의 보안 플래그.
- 솔루션 1의 쿼리 문자열은 액세스 토큰을 노출하고 보안 위험을 초래합니다.
- 솔루션 3을 사용하려면 대상 도메인에서 CORS를 활성화하고 도메인에서 명시적인 원본 사양을 지정해야 합니다. 서버측.
위 내용은 리디렉션 중에 다른 도메인에 대한 쿠키 또는 헤더를 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!