wake-up-neo.net

Laravel 5.7 Auth :: loginUsingId () funktioniert nicht, nachdem das CSRF-Token generiert wurde

Ich versuche, Benutzer in Schritt 2 der Registrierungsschritte automatisch anzumelden. Nach dem erfolgreichen Einfügen in die Datenbank benutze ich Auth::loginUsingId($user_id), um den Benutzer mit Ajax automatisch anzumelden. Ich sende immer CSRF Token für jeden Schritt.

Jetzt besteht das Problem darin, dass nach erfolgreicher Anmeldung ein CSRF-Token generiert und Auth::user() in Schritt 3 leer wird

Auch vor und nach dem Login ist CSRF anders.

Erstens ist das csrf-Token erforderlich, wenn eine Nicht-GET-Anforderung verwendet wird. Wenn die Verwendung der GET-Anforderung in Ihrem Fall sinnvoll erscheint, können Sie sie verwenden.

Andernfalls sollten Sie in Schritt 2 ein neues CSRF-Token wie folgt zurückgeben:

Auth::loginUsingId($user_id);

return response()->json(['csrf_token' => csrf_token()];

verwenden Sie dann in Schritt 3 dieses neue Token, das Sie aus der Antwort von Schritt 2 erhalten haben.

2

Sie können Auth::id() versuchen, um die ID des aktuellen Benutzers abzurufen.

Wenn Sie alle Details zum angemeldeten Benutzer anzeigen möchten, können Sie Auth::user() verwenden.

Über Auth::user() können Sie auf alle Details zum Benutzer zugreifen.

Sie können sich auch vom Controller aus anmelden, indem Sie die Benutzer-ID Auth::login($user_id) übergeben.

Und wenn Sie Benutzer Auth::loginUsingId() sind, müssen Sie die Benutzer-ID und den Status true übergeben, damit Sie sich an die Details erinnern können.

Wie: Auth:loginUsingId(user_id, true)


Zum Beispiel :

Benutzer-ID abrufen: Auth::id()

Name des Benutzers abrufen: Auth::user()->name

E-Mail des Benutzers abrufen: Auth::user()->email

usw....

1
kmjadeja

Sie können diese Methode ausprobieren Auth::User()->id;

0

Es scheint, als sei es überhaupt kein Thema von CSRF. Wenn Sie einen neuen Benutzer erstellen, klicken Sie auf Gefällt mir

$user = new App\User;
$user->username = $request->username;
...
...
$user->save();

Auth::loginUsingId($user->id);

Stellen Sie dann dd(Auth::user()->id); ein, um zu überprüfen, ob der Benutzer angemeldet ist oder nicht.

Lass uns wissen.

0
Gammer