Dieser Artikel stellt hauptsächlich die Lösung der Verwendung von Redis zum Teilen von Sitzungen zwischen laravel5.6 und thinkphp3.2 vor. Jetzt kann ich ihn mit Ihnen teilen
In der Praxis: Das historische Projekt wurde mit thinkphp3.2 entwickelt. Nun ist eine Aktualisierung der Funktionen geplant. Die Entwicklung der aktualisierten Funktionen erfolgt mit laravel5.6.
Es gibt mehrere Schlüsselprobleme, die gelöst werden müssen, darunter das Problem der Benutzerauthentifizierung. Das heißt, nachdem sich System 1 nur angemeldet hat, erkennt System 2 automatisch seine Anmeldeinformationen. Das heißt, das Wesentliche muss gelöst werden: das Problem der gemeinsamen Nutzung von Laravel- und Thinphp-Sitzungen.
Session verwendet Redis zur Speicherung. Thinkphp und Laravel greifen gemeinsam auf Redis zu und erhalten automatisch die in Redis gespeicherten authentifizierten Benutzerinformationen basierend auf demselben Cookie.
thinkphp3.2 bietet keine Redis-Unterstützung für integrierte Sitzungen. Derzeit verwenden wir die Einstellungen in PHP, um es zu aktivieren. In index.php fügen wir die folgenden zwei Anweisungszeilen hinzu:
ini_set("session.save_handler", "redis"); ini_set("session.save_path", "tcp://redis:6379");
Sie können es auch zur Konfigurationsdatei config.php hinzufügen
Zu diesem Zeitpunkt, wenn thinkphp die Sitzung speichert, wird es wird PHPREDIS_SESSION als Präfix gespeichert.
Die Methode zum Öffnen von Redis in Laravel ist relativ kompliziert. Spezifische Informationen finden Sie in der offiziellen Dokumentation, um Predis mit Composer zu installieren und entsprechende Konfigurationen durchzuführen.
Weil Laravel die integrierte Sitzung von PHP vollständig veraltet hat. Daher gibt es für uns keine Möglichkeit, Informationen über $_SESSION zu erhalten (es könnte sogar ein Fehler aufgrund einer undefinierten Variablen auftreten). Weil die Cookies von Laravel verschlüsselt sind. Daher können wir die eigenen Cookies von laravel nicht verwenden, um Cookie-Informationen zu erhalten.
Die spezifischen Implementierungsideen sind:
1 Holen Sie sich das native Cookie.
2 Verbinden Sie PHPREDIS_SESSION mit dem Formularschlüssel
3 Verwenden Sie Redis, um den im Schlüssel gespeicherten Wert direkt abzurufen
... use Illuminate\Support\Facades\Redis; ... $cookie = $_COOKIE['PHPSESSID']; $session = Redis::get('PHPREDIS_SESSION:' . $cookie);
Diese $session ist der Sitzungswert im thinkphp-System.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonLaravel5.6 und Thinkphp3.2 verwenden Redis, um Sitzungen zu teilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!