Heim >Backend-Entwicklung >PHP-Tutorial >Wie teile ich PHP-Sitzungen über mehrere Subdomains hinweg?

Wie teile ich PHP-Sitzungen über mehrere Subdomains hinweg?

Linda Hamilton
Linda HamiltonOriginal
2025-01-01 03:37:10581Durchsuche

How to Share PHP Sessions Across Multiple Subdomains?

PHP-Sitzungen über Subdomains hinweg teilen

Problem:

So richten Sie eine nahtlose Sitzungsfreigabe ein Mechanismus über Subdomains hinweg, der sicherstellt, dass authentifizierte Benutzer angemeldet bleiben, wenn sie zwischen diesen navigieren Subdomains.

Hintergrund:

  • Erwägen Sie eine Einrichtung mit den folgenden Subdomains:

    • auth.example.com (Authentifizierungsserver)
    • sub1.example.com (application 1)
    • sub2.example.com (Anwendung 2)
  • Benutzer sollten sich über auth.example.com anmelden und auf sub1.example.com zugreifen können oder sub2.example.com, ohne sich erneut anmelden zu müssen.

Initial Versuch mit php.ini:

  • Das Ändern des session.cookie_domain-Parameters in php.ini in „.example.com“ hat das Problem nicht behoben.

Überarbeiteter Ansatz:

  • Legen Sie die Sitzung fest Name vor der Konfiguration der Cookie-Parameter:

    • session_name("some_name");
    • session_set_cookie_params(0, '/', '.example.com');
    • session_start();
  • Diese Änderung stellt sicher, dass der Sitzungsname überall konsistent ist alle Subdomains.

Lösungserklärung:

Durch das explizite Festlegen des Sitzungsnamens wird die Standardgenerierung von PHP-Sitzungsnamen überschrieben. Dadurch wird sichergestellt, dass in allen Subdomains dasselbe Sitzungscookie verwendet wird, was eine ordnungsgemäße Sitzungsfreigabe ermöglicht. Die Einstellung session.cookie_domain in php.ini ist weiterhin erforderlich, um sicherzustellen, dass das Cookie in allen Subdomains verfügbar ist.

Das obige ist der detaillierte Inhalt vonWie teile ich PHP-Sitzungen über mehrere Subdomains hinweg?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn