0

多くの異なるサブドメインを持つ Web サイトを運営しています。メインドメインのサブドメインを使用する新しいダウンロードサーバーを導入しています。通常、ユーザー情報を確認する方法はクロスサブドメインCookieなどを使用しますが、サーバーが異なるためこれが機能しないことはわかっており、ユーザーがメインサーバーにログインしているかどうかなどを確認する最良の方法は何だろうと思いました.

私がやりたいことは次のとおりです

Sub1.domain.tld = メインサーバー

ファイルをダウンロードする場合、ファイルが保存されている適切なサーバーが表示されます。

Sub2.domain.tld = ダウンロード サーバー

ユーザーがログインしているかどうかを保持または確認する方法はありますか。

サブドメイン間で Cookie を使用する場合の通常の方法は次のとおりです。

setcookie('LoginVariable1', $LoginVariable1, $expiretime, '/', '.domain.tld');
setcookie('LoginVariable2', $LoginVariable2, $expiretime, '/', '.domain.tld');
4

2 に答える 2

0

あなたのケースでは、クロスドメイン Cookie が正確に機能します。これらが機能しない唯一のケースは、「www.somedomain.example」と「download.someotherdomain.example」がある場合です。これは、Cookie をトップレベル ドメイン「example」のクロスドメインとして定義できないためです。

したがって、これは要約すると、ユーザーのセッション ID、またはログイン中に取得した認証トークンなどをすべてのサーバーに通知する Cookie を持つことになり、すべてのサーバーは、このセッションまたはトークンが現在ログインしているかどうかを中央認証サービスに問い合わせる必要があります。

于 2013-04-03T22:35:18.747 に答える
0

サブドメインが異なるサーバーにマップされている場合、私が見ているように、2 つの方法があります。

1)サーバーAでphpがセッションを書き込むディレクトリを共有し、そこにサーバーBを指定できます。

2) データベース セッションを使用し、両方のサーバーを単一のデータベースに接続して、セッションを確認/取得することができます。

どちらの場合も、セッションを保存するための単一の中心的な場所になります。

于 2013-04-03T22:35:44.380 に答える