Zistenie, či je aktuálny používateľ autentifikovaný

Determining If Current User Is Authenticated



Problém

Chcete zistiť, či je používateľ prihlásený.

Viete, že Laravel automaticky ponechá overeného používateľa v relácii. Chcete skontrolovať, či je v aktuálnej požiadavke prihlásený a overený používateľ.







Riešenie

Použite | _+_ |.



| _+_ | metóda vráti hodnotu true alebo false.



keby (Auth::skontrolovať())
{
zahodil 'Jéj! Si prihlásený. ';
}

Diskusia

V zákulisí sa pri tom stane niekoľko vecí.





Prvý laravel skontroluje, či má aktuálna relácia ID používateľa. Ak je to tak, urobí sa pokus o získanie užívateľa z databázy.

Ak sa to nepodarí, Laravel skontroluje, či si pamätáte súbor cookie. Ak je to prítomné, urobí sa znova pokus o získanie používateľa z databázy.



True sa vráti iba vtedy, ak je z databázy získaný platný používateľ.

Túto metódu používa filter „hosť“
Laravel poskytuje predvolenú implementáciu hosťovského filtra v | _+_ |.

Trasa::filter('hosť', funkciu()
{
keby (Auth::skontrolovať()) vrátiť saPresmerovať::do('/');
});

Táto predvolená implementácia sa používa, ak chcete pridať filter na trasu, ku ktorej majú prístup iba hostia (alias používatelia, ktorí nie sú prihlásení). Ak je používateľ prihlásený, bude presmerovaný na domovskú stránku.