22

同じテーマのドメインを 3 つ持っています。誰かが別のテーマを選択した場合、それが 3 つのドメインすべてに伝播して、エクスペリエンスが同じままになるようにしたいと考えています。

ドメイン1にCookieを設定し、Cookieが設定されているドメイン2にリダイレクトし、Cookieが設定されているドメイン3にリダイレクトし、リダイレクトすることでこれを達成することを計画していました。情報を保護したり保護したりする必要がないため、これは問題なく機能します。

各ドメインに Cookie を設定するためだけに 3 つのリダイレクトを行うというアイデアは嫌いで、もう少しエレガントなものを探していました。

4

2 に答える 2

46

Google が行っていることを行います。はい、Google はこれと同じトリックを行って、別のドメインにある YouTube やその他の Google サービスにユーザーをログインさせています。

3 つのドメインすべてに Cookie を設定するPHPファイルを作成します。次に、テーマを設定するドメインで、他の 2 つのドメインに Cookie を設定するPHPファイルをロードするHTMLファイルを作成します。例:

<html>
   <head></head>
   <body>
      <p>Please wait.....</p>
      <img src="http://domain2.com/setcookie.php?theme=whateveryourthemehere" />
      <img src="http://domain3.com/setcookie.php?theme=whateveryourthemehere" />
   </body>
</html>

次に、 bodyタグにonloadコールバックを追加します。ドキュメントは、画像が完全に読み込まれたとき、つまり他の 2 つのドメインで Cookie が設定されたときにのみ読み込まれます。オンロード コールバック:

<head>
   <script>
   function loadComplete(){
      window.location="http://domain1.com";//URL of domain1
   }
   </script>
</head>
<body onload="loadComplete()">

setcookie.php

次のような PHP ファイルを使用して、他のドメインに Cookie を設定します。

<?php
if(isset($_GET['theme'])){
   setcookie("theme", $_GET['theme'], time()+3600);
}
?>

現在、Cookie は3 つのドメインに設定されています。

ソース - 私のブログ

于 2013-10-23T15:59:52.737 に答える
0

他の 2 つのドメインを iFrame に含めることができます。詳細については、「サードパーティ Cookie」を検索してください。ただし、ブラウザの設定によっては、ユーザーがサードパーティの Cookie を受け入れない場合があります。他にもいくつかアイデアがあります:お気に入りのクロスドメイン Cookie 共有アプローチは何ですか?

于 2013-10-23T03:23:16.263 に答える