ホームページ >バックエンド開発 >PHPチュートリアル >複数のサブドメイン間で PHP セッションを共有するにはどうすればよいですか?

複数のサブドメイン間で PHP セッションを共有するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-01 03:37:10535ブラウズ

How to Share PHP Sessions Across Multiple Subdomains?

サブドメイン間での PHP セッションの共有

問題:

シームレスなセッション共有を確立する方法サブドメイン間のメカニズムにより、認証されたユーザーがサブドメイン間を移動する際にログイン状態を維持できるようになります。

背景:

  • 次のサブドメインを使用したセットアップを検討してください:

    • auth.example.com (認証サーバー)
    • sub1.example.com (アプリケーション 1)
    • sub2.example.com (アプリケーション 2)
  • ユーザーはログを記録できる必要がありますauth.example.com経由でログインし、ログインせずにsub1.example.comまたはsub2.example.comにアクセスします

php.ini による最初の試行:

  • php.ini の session.cookie_domain パラメータを「.example.com」に変更する問題は解決されませんでした。

改訂アプローチ:

  • Cookie パラメーターを構成する前にセッション名を設定します:

    • session_name("some_name");
    • session_set_cookie_params( 0、「/」、 '.example.com');
    • session_start();
  • この変更により、セッション名がすべてのサブドメイン間で一貫していることが保証されます。

解決策の説明:

セッション名を明示的に設定すると、PHP のデフォルトのセッション名生成がオーバーライドされます。これにより、すべてのサブドメインで同じセッション Cookie が使用されるようになり、適切なセッション共有が可能になります。 php.ini の session.cookie_domain 設定は、Cookie がすべてのサブドメインで利用できるようにするために引き続き必要です。

以上が複数のサブドメイン間で PHP セッションを共有するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。