Avgör om den nuvarande användaren är autentiserad

Determining If Current User Is Authenticated



Problem

Du vill se om en användare är inloggad.

Du vet att Laravel automatiskt behå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änd | _+_ |.



Den | _+_ | metoden returnerar sant eller falskt.



om (Auth::kontrollera())
{
kastade ut 'Jippie! 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 kontrollerar Laravel om minnet om mig -kakan. Om den är närvarande görs ett nytt 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äst' -filtret använder den här metoden
Laravel tillhandahåller en standardimplementering av gästfiltret i | _+_ |.

Rutt::filtrera('gäst', fungera()
{
om (Auth::kontrollera()) lämna tillbakaDirigera om::till('/');
});

Denna standardimplementering används när du vill lägga till ett filter på 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 den till startsidan.