Problem
Sie möchten sehen, ob ein Benutzer angemeldet ist.
Sie wissen, dass Laravel den authentifizierten Benutzer automatisch in der Sitzung behält. Sie möchten überprüfen, ob bei der aktuellen Anfrage ein Benutzer angemeldet und authentifiziert ist.
Lösung
Benutzen Auth::check()
.
Das Auth::check()
Methode gibt true oder false zurück.
echo "Yay! Du bist eingeloggt.";
Diskussion
Mehrere Dinge passieren hinter den Kulissen, wenn Sie dies tun.
Zuerst prüft Laravel, ob die aktuelle Sitzung die ID eines Benutzers hat. Wenn ja, wird versucht, den Benutzer aus der Datenbank abzurufen.
Wenn dies fehlschlägt, sucht Laravel nach dem „Erinnere dich an mich“-Cookie. Wenn diese vorhanden ist, wird erneut versucht, den Benutzer aus der Datenbank abzurufen.
Nur wenn ein gültiger Benutzer aus der Datenbank abgerufen wird, wird true zurückgegeben.
Der 'Gast'-Filter verwendet diese Methode
Laravel bietet eine Standardimplementierung des Gastfilters in App/Filter.php
.
if (Auth::check()) return Redirect::to('/');
);
Diese Standardimplementierung wird verwendet, wenn Sie einen Filter zu einer Route hinzufügen möchten, auf die nur Gäste (also nicht angemeldete Benutzer) zugreifen können. Wenn ein Benutzer angemeldet ist, wird er auf die Startseite weitergeleitet home.