リダイレクト中に別のドメインの Cookie またはヘッダーを設定するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-01 03:19:28
オリジナル
297 人が閲覧しました

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

あるドメインから別のドメインにリダイレクトし、他のドメインの Cookie またはヘッダーを設定する方法?

HTTP リダイレクトでは、ターゲットのカスタム ヘッダーまたは Cookie を設定できませんドメイン。さらに、ブラウザは、Set-Cookie ヘッダーで応答するドメインとは異なるドメインに Cookie を設定することを防ぎます。

解決策 1: クエリ パラメーターを使用してリダイレクトし、次に Cookie を設定します

  1. Redirect fromクエリ パラメーターとして渡されたアクセス トークンを使用して、ドメイン A からドメイン B に送信します。
  2. ドメイン B はリクエストを受信し、トークンを使用して独自の Cookie を設定します。

解決策 2: クロスオリジンWindow.postMessage() との通信

  1. ドメイン B を指す非表示の iframe をドメイン A に追加します。
  2. Window.postMessage() を使用してドメイン B にアクセス トークンを送信します。
  3. ドメイン B はトークンを localStorage に保存するか、JS を使用して Cookie を設定します。
  4. ドメイン A にトークンが保存されたことをメッセージし、ユーザーをドメイン B にリダイレクトします。

解決策 3: サーバー側のトークン交換

  1. を使用するドメイン A のタグを使用して、クエリ パラメータとしてアクセス トークンを使用してドメイン B をポイントします。
  2. ドメイン B は、リクエストを受信すると Set-Cookie ヘッダーで応答します。
  3. fetch または XMLHttpRequest (資格情報とともに) を使用します。
  4. ドメイン B は、アクセス トークンの受信時に Cookie を設定します。

重要な注意事項:

  • 解決策 2 と 3 が機能するには、ブラウザ設定ですべての Cookie を有効にする必要があります。
  • SameSite=None を使用します。解決策 3 の Cookie 内のセキュリティ フラグ。
  • 解決策 1 のクエリ文字列はアクセス トークンを公開し、セキュリティ リスクを引き起こします。
  • 解決策 3 では、ターゲット ドメインで CORS を有効にし、ターゲット ドメインで明示的な起点の指定を行う必要があります。サーバー側。

以上がリダイレクト中に別のドメインの Cookie またはヘッダーを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!