Probléma
Meg szeretné nézni, hogy egy felhasználó be van-e jelentkezve.
Tudja, hogy a Laravel automatikusan megtartja a hitelesített felhasználót a munkamenetben. Ellenőrizni szeretné, hogy az aktuális kérelemhez bejelentkezett-e és hitelesített-e egy felhasználó.
Megoldás
Használat Auth :: check ()
.
A Auth :: check ()
metódus true vagy false értéket ad vissza.
visszhang "Yay! Be van jelentkezve.";
Vita
Több dolog történik a kulisszák mögött, amikor ezt megteszi.
Először Laravel ellenőrzi, hogy az aktuális munkamenetnek van-e felhasználói azonosítója. Ha igen, akkor megpróbálják lekérni a felhasználót az adatbázisból.
Ha ez nem sikerül, akkor Laravel ellenőrzi az „emlékszem rám” sütit. Ha ez megvan, akkor ismét megpróbálják lekérni a felhasználót az adatbázisból.
Csak akkor ad vissza igaz értéket, ha érvényes felhasználót kap az adatbázisból.
A 'vendég' szűrő ezt a módszert használja
A Laravel a vendégszűrő alapértelmezett megvalósítását biztosítja alkalmazás / szűrők.php
.
if (Auth :: check ()) visszatér az Redirect :: helyre ('/');
);
Ezt az alapértelmezett megvalósítást akkor használják, ha szűrőt szeretne hozzáadni egy olyan útvonalhoz, amelyhez csak a vendégek (más néven nem bejelentkezett felhasználók) férnek hozzá. Ha egy felhasználó be van jelentkezve, akkor átirányítják a kezdőlapra.