Praeguse kasutaja autentimise kindlakstegemine

Determining If Current User Is Authenticated



Probleem

Soovite näha, kas kasutaja on sisse logitud.

Teate, et Laravel hoiab automaatselt autentitud kasutaja seansi ajal. Soovite kontrollida, kas praegusel päringul on kasutaja sisse logitud ja autentitud.







Lahendus

Kasutage | _+_ |.



| _+_ | meetod tagastab tõese või vale.



kui (Aut::Kontrollima())
{
viskas välja 'Jaa! Olete sisse logitud. ';
}

Arutelu

Seda tehes juhtub kulisside taga mitu asja.





Esiteks kontrollib Laravel, kas praegusel seansil on kasutaja ID. Kui jah, siis proovitakse kasutaja andmebaasist alla laadida.

Kui see ei õnnestu, kontrollib Laravel meeldejääva küpsise olemasolu. Kui see on olemas, proovitakse taas kasutajat andmebaasist alla laadida.



Ainult siis, kui andmebaasist leitakse kehtiv kasutaja, tagastatakse tõene.

Seda meetodit kasutab filter „külaline”
Laravel pakub külaliste filtri vaikimisi rakendust | _+_ |.

Tee::filter('külaline', funktsiooni()
{
kui (Aut::Kontrollima()) tagasiÜmbersuunamine::et('/');
});

Seda vaikimisi rakendust kasutatakse siis, kui soovite filtri lisada marsruudile, millele pääsevad juurde ainult külalised (aka kasutajad, kes pole sisse logitud). Kui kasutaja on sisse logitud, suunatakse ta kodulehele.