Ich benutze Ajax um einen Benutzer von Subdomain einzuloggen. Die Yii2-App befindet sich in einer anderen Sub-Domain. Beide Subdomänen sind so konfiguriert, dass sie dieselben Cookie- und Sitzungsdomänen verwenden und Pfade speichern. Ich bin auch Sitzungs-ID mit Ajax rufen Sie die Benutzerinformationen auf die gleiche Sitzung von nicht-App Sub-Domain wie folgt verwendet schreiben:
$session = Yii::$app->session;
$session->open();
$session->setId($post["session"]);
$session["user.id"] = $user->id;
echo $session->id; // This does not return the same ID originating from post!
Leider Informationen der Benutzer nicht auf die Sitzung bereits bestehenden, geschrieben, sondern ein neu ein. Gibt es eine Sitzung irgendwo in der Mitte des Login-Prozesses oder warum funktioniert es nicht? Ich habe auch versucht session_id($post["session"])
, aber nichts.
Dies war tatsächlich auf der vorherigen Domäne, so dass ich etwas verpassen muss. Alle von AJAX geposteten Informationen sind korrekt und überprüft, der Benutzer ist ordnungsgemäß angemeldet (überprüft die Protokolle), aber in falsche Sitzung.
Vielen Dank im Voraus!
Danke, das hilft ein wenig. Tatsächlich enthält die Sitzungsdatei jetzt die Informationen vor der Anmeldung und nach der Anmeldung (Benutzerdetails), die vorher nicht vorlagen, ABER schreibt die Sitzung dennoch in eine neue Datei mit einer völlig anderen ID. Irgendwelche Ideen? – jeesus
Zum Beispiel '$ oldId = session_id(); $ session = Yii :: $ app-> Sitzung; $ session-> setId ($ oldId); $ session-> open(); $ session-> set ("oldId", $ oldId); '. Dann kann ich wirklich sehen, dass diese Sitzung die richtige alte ID speichert, aber aus irgendeinem Grund verwendet sie nicht die alte ID für die Sitzungs-ID, sondern nimmt nur eine neue ID. – jeesus
Ok, verstanden. Musste die 'session_id()' nach '$ user-> login()' Methode zuweisen. – jeesus