Determinar si l’usuari actual està autenticat

Determining If Current User Is Authenticated



Problema

Voleu veure si hi ha un usuari connectat.

Ja sabeu que Laravel manté automàticament l’usuari autenticat a la sessió. Voleu comprovar si la sol·licitud actual té un usuari connectat i autenticat.







Solució

Utilitzeu Auth::check() .



El Auth::check() el mètode retorna cert o fals.



si (Aut::comprovar())
{
trobo 'Visca! Heu iniciat la sessió. ';
}

Debat

Quan feu això, passen diverses coses entre bastidors.





Primer Laravel comprova si la sessió actual té l'identificador d'un usuari. Si és així, s’intenta recuperar l’usuari de la base de dades.

Si això falla, Laravel comprova si hi ha la galeta recorda'm. Si està present, es torna a intentar recuperar l'usuari de la base de dades.



Només es retorna cert si es recupera un usuari vàlid de la base de dades.

El filtre 'convidat' utilitza aquest mètode
Laravel proporciona una implementació per defecte del filtre de convidats a app/filters.php .

Ruta::filtre('convidat', funció()
{
si (Aut::comprovar()) tornarRedirecció::a('/');
});

Aquesta implementació per defecte s'utilitza quan voleu afegir un filtre a una ruta que només sigui accessible per als convidats (també coneguts com usuaris que no han iniciat la sessió). Si un usuari ha iniciat la sessió, es redirigeix ​​a la pàgina inicial.