Problem
Du vill se om en användare är inloggad.
Du vet att Laravel automatiskt håller den autentiserade användaren i sessionen. Du vill kontrollera om den aktuella begäran har en användare inloggad och autentiserad.
Lösning
Använda sig av Auth :: check ()
.
De Auth :: check ()
metoden returnerar true eller false.
eko "Yay! Du är inloggad.";
Diskussion
Flera saker händer bakom kulisserna när du gör detta.
Först kontrollerar Laravel om den aktuella sessionen har ID för en användare. Om så är fallet görs ett försök att hämta användaren från databasen.
Om det misslyckas, letar Laravel efter kakan "kom ihåg mig". Om det är närvarande görs återigen ett försök att hämta användaren från databasen.
Endast om en giltig användare hämtas från databasen returneras sant.
Gästfiltret använder den här metoden
Laravel tillhandahåller en standardimplementering av gästfiltret i app / filter.php
.
om (Auth :: check ()) returnera Redirect :: till ('/');
);
Denna standardimplementering används när du vill lägga till ett filter till en rutt som endast är tillgänglig för gäster (aka användare som inte är inloggade). Om en användare är inloggad omdirigeras de till hemsidan.