「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > リダイレクト中に別のドメインの Cookie またはヘッダーを設定するにはどうすればよいですか?

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

2024 年 11 月 1 日に公開
ブラウズ:831

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 の リダイレクト中に別のドメインの Cookie またはヘッダーを設定するにはどうすればよいですか? タグを使用して、アクセス トークンをクエリ パラメータとしてドメイン B をポイントします。
  2. ドメイン B は次のように応答します。リクエストの受信時に Set-Cookie ヘッダーを設定します。
  3. fetch または XMLHttpRequest (資格情報と CORS を有効にして) を使用して、トークンをドメイン B に直接送信します。
  4. ドメイン B は、アクセスの受信時に Cookie を設定します。 token.

重要な注意事項:

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

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3