Déterminer si l'utilisateur actuel est authentifié

Déterminer si l'utilisateur actuel est authentifié

Problème

Vous voulez voir si un utilisateur est connecté.

Vous savez que Laravel garde automatiquement l'utilisateur authentifié dans la session. Vous souhaitez vérifier si la demande actuelle a un utilisateur connecté et authentifié.

Solution

Utiliser Auth :: check ().

Le Auth :: check () La méthode renvoie vrai ou faux.

if (auth :: check ())

écho "yay! Vous êtes connecté."

Discussion

Plusieurs choses se produisent dans les coulisses lorsque vous faites cela.

First Laravel vérifie si la session en cours a l'ID d'un utilisateur. Si c'est le cas, une tentative est faite pour récupérer l'utilisateur de la base de données.

Si cela échoue, alors Laravel vérifie le cookie «Remember Me». Si cela est présent, une fois de plus, une tentative est faite pour récupérer l'utilisateur de la base de données.

Uniquement si un utilisateur valide est récupéré de la base de données est vrai.

Le filtre «invité» utilise cette méthode
Laravel fournit une implémentation par défaut du filtre invité dans application / filtres.php.

Route :: Filter ('invité', function ()

if (auth :: check ()) return redirect :: vers ('/');
);

Cette implémentation par défaut est utilisée lorsque vous souhaitez ajouter un filtre à un itinéraire uniquement accessible par les invités (AKA utilisateurs qui ne sont pas connectés). Si un utilisateur est connecté, il est redirigé vers la page d'accueil.