2011-02-02 8 views
2

HTTPリクエストを何らかの形で変更する(Cookie、HTTPリクエストパラメータなどを追加する)方法はありますか?そうすれば、ユーザーがまったく別のものに移動したときにHTTPセッションを維持することができますサイト、別のドメインにありますか?複数のサイト間のHTTPセッション

+0

リクエストと一緒にセッションIDを渡すだけですか? – Gumbo

+0

これは「シングルサインオン」とも呼ばれます – powtac

+0

@powtac:セッションは認証情報を格納するだけではなく、認証に関して何も言われませんでした。 – Gumbo

答えて

-1

ここでセッションデータを2つの異なるサーバー間で転送する必要があります。これは、両方のドメイン/サーバーへのアクセス権があり、これを実装するために何かserversideを作成しない限り不可能です。それでも、あなたが管理している特定のサーバーにのみ適用されます。

制御できないサーバーからセッションデータを取得する方法はありません。

+0

質問はサーバー側ではなく、サーバー側では処理できます。質問はクライアント側についてです – Demiurg

+0

私の間違い。次の記事を参照してください:http://stackoverflow.com/questions/511541/sharing-session-across-domain。 2番目のコメントは、シングルサインオンサービスの説明です。しかし、これはまだサーバー側です。私は正直なところ、実際のセッションデータを含むほとんどのやりとりはサーバ側で行われるため、クライアント側でできることはあまりないと思います。 A.k.a.あなたのソリューションは、最初は純粋にサーバー側になることができます。 – sichinumi

2

ドメインが異なる場合は、サブドメインとfoo.bar.comとして、toto.bar.comはcookieドメインが.bar.comの場合はtoto.bar.comがCookieを共有できます。

サブドメインで作業できない場合は、プロキシを第1ドメインに使用して、ドメインまたはサブドメインの作業構成を取得できます。 toto.bar.comにプロキシを置くとtoto.comをプロキシすると、.bar.comセッションCookieを共有するのに役立ちます。そうするなら、オープンプロキシを構築しないように注意してください。つまり、最初のサーバーでもトラフィックの100%が得られます。

次に、前のいずれにも該当しない場合は、第三者が認証データを共有するSSOソリューションが必要です。しかし、SSOは、セッションデータではなく、識別部分を共有するためにのみ存在します。

SSOソリューションの前に、同じ識別/認証バックエンド(たとえばopenLDAP)を持つ簡単なソリューションがあります。しかし、これにより、接続された/切断された状態を共有するのではなく、統一されたパスワードを持つことができます(これはSSOの仕事です)。

サーバー側でセッションデータの共有を処理できる場合は、2人の異なる2つのセッションの同期を同じユーザーに関連付けて処理する必要があります。固有の識別子とのこの関連付けは、SSOが提供するものです。これは複雑なことです。

本当に重要な質問は2つのサイト間で共有したいものは何ですか?もしそれが色のテーマのようなユーザーの好みであれば、CROSやJSONPの呼び出しがあなたのアプリケーションのjs環境でいくつかのユーザー設定、gsを与えると考えるかもしれません。それぞれの設定を保存するいくつかのajaxクエリこれは、2つのアプリケーション間で共通のデータを共有する方法ですが、セキュリティで保護されたデータには使用しないでください。

関連する問題