Bestimmen Sie, ob der aktuelle Benutzer authentifiziert ist

Bestimmen Sie, ob der aktuelle Benutzer authentifiziert ist

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 die aktuelle Anfrage über einen Benutzer angemeldet und authentifiziert ist.

Lösung

Verwenden Auth :: check ().

Der Auth :: check () Methode gibt wahr oder falsch zurück.

if (auth :: check ())

echo "yay! Du bist angemeldet.";

Diskussion

Hinter den Kulissen passieren mehrere Dinge, wenn Sie dies tun.

Erst Laravel prüft, ob die aktuelle Sitzung die ID eines Benutzers hat. In diesem Fall wird versucht, den Benutzer aus der Datenbank abzurufen.

Wenn das fehlschlägt, schaut Laravel nach dem Cookie „Erinnere dich an mich“. Wenn dies vorhanden ist, wird erneut versucht, den Benutzer aus der Datenbank abzurufen.

Nur wenn ein gültiger Benutzer aus der Datenbank abgerufen wird.

Der "Gast" -Filter verwendet diese Methode
Laravel bietet eine Standardimplementierung des Gastfilters in App/Filter.Php.

Route :: Filter ('Gast', Funktion ()

if (auth :: check ()) return recirect :: to ('/');
);

Diese Standardimplementierung wird verwendet, wenn Sie einer Route, die nur von Gästen zugänglich ist (AKA -Benutzer, die nicht angemeldet sind, einen Filter hinzufügen möchten (nicht angemeldet). Wenn ein Benutzer angemeldet ist, werden er auf die Startseite umgeleitet.