Ustalenie, czy bieżący użytkownik jest uwierzytelniony

Ustalenie, czy bieżący użytkownik jest uwierzytelniony

Problem

Chcesz sprawdzić, czy użytkownik jest zalogowany.

Wiesz, że Laravel automatycznie utrzymuje uwierzytelnionego użytkownika w sesji. Chcesz sprawdzić, czy bieżące żądanie ma zalogowane i uwierzytelnione użytkownika.

Rozwiązanie

Używać AUTH :: Check ().

AUTH :: Check () Metoda zwraca prawda lub fałsz.

if (AUTH :: Check ())

echo "yay! Jesteś zalogowany.";

Dyskusja

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

Pierwszy laravel sprawdza, czy bieżąca sesja ma identyfikator użytkownika. Jeśli tak, podejmowana jest próba odzyskania użytkownika z bazy danych.

Jeśli to się nie powiedzie, Laravel sprawdza plik cookie „Remember Me”. Jeśli jest to obecne, po raz kolejny podjęto próbę odzyskania użytkownika z bazy danych.

Tylko wtedy, gdy prawidłowy użytkownik zostanie pobrany z bazy danych, jest prawdziwe, zwrócone.

Filtr „gościa” używa tej metody
Laravel zapewnia domyślną implementację filtra gości App/Filtry.php.

Trasa :: „gość”, funkcja ()

if (AUTH :: Check ()) zwróć przekierowanie :: do ('/');
);

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