Określanie, czy bieżący użytkownik jest uwierzytelniony

Determining If Current User Is Authenticated



Problem

Chcesz sprawdzić, czy użytkownik jest zalogowany.

Wiesz, że Laravel automatycznie utrzymuje uwierzytelnionego użytkownika w sesji. Chcesz sprawdzić, czy w bieżącym żądaniu użytkownik jest zalogowany i uwierzytelniony.







Rozwiązanie

Użyj |__+_|.



|__+_| metoda zwraca prawdę lub fałsz.



Jeśli (Uwierzytelnianie::sprawdzać())
{
wyrzucił „Tak! Jesteś zalogowany.;
}

Dyskusja

Kilka rzeczy dzieje się za kulisami, kiedy to robisz.





Najpierw Laravel sprawdza, czy bieżąca sesja ma identyfikator użytkownika. Jeśli tak, to podejmowana jest próba pobrania użytkownika z bazy danych.

Jeśli to się nie powiedzie, Laravel poszuka pliku cookie „zapamiętaj mnie”. Jeśli tak jest, po raz kolejny podejmowana jest próba pobrania użytkownika z bazy danych.



Tylko wtedy, gdy prawidłowy użytkownik jest pobierany z bazy danych, zwracana jest prawda.

Filtr „gość” korzysta z tej metody
Laravel dostarcza domyślną implementację filtra gościa w |_+_|.

Trasa::filtr('Gość', funkcjonować()
{
Jeśli (Uwierzytelnianie::sprawdzać()) powrótPrzeadresować::do('/');
});

Ta domyślna implementacja jest używana, gdy chcesz dodać filtr do trasy, która jest dostępna tylko dla gości (czyli użytkowników, którzy nie są zalogowani). Jeśli użytkownik jest zalogowany, zostaje przekierowany na stronę główną.