Bestimmen, ob der aktuelle Benutzer authentifiziert ist

Determining If Current User Is Authenticated



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

Verwenden Sie |_+_|.



Die |_+_| Methode gibt true oder false zurück.



wenn (Authentifizierung::prüfen())
{
rauswerfen 'Yay! Sie sind 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 dies der Fall ist, wird versucht, den Benutzer aus der Datenbank abzurufen.

Wenn dies fehlschlägt, sucht Laravel nach dem Cookie zur Erinnerung an mich. 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 |_+_|.

Route::Filter('Gast', Funktion()
{
wenn (Authentifizierung::prüfen()) RückkehrUmleiten::zu('/');
});

Diese Standardimplementierung wird verwendet, wenn Sie einer Route einen Filter hinzufügen möchten, auf den nur Gäste (also nicht angemeldete Benutzer) zugreifen können. Wenn ein Benutzer angemeldet ist, wird er auf die Startseite umgeleitet.