3 votes

Laravel 5.2 Auth facade et Auth::guard($guard)

Je suis nouveau à Laravel. J'ai parcouru le middleware d'authentification par défaut et j'ai vu qu'il utilisait :

Auth::guard($guard)->guest()

pour vérifier si l'utilisateur est un invité.

La documentation à l'adresse https://laravel.com/docs/5.2/authentication#retrieving-the-authenticated-user que l'on peut utiliser :

Auth::check()

Pour savoir si un utilisateur est authentifié. (J'imagine que c'est le contraire de guest() ?

J'ai essayé de modifier le code par défaut pour utiliser

Auth::guest()

et j'obtiens exactement le même résultat.

Ma question est la suivante : quelle est la différence entre le fait d'avoir guard($guard)-> ou non dans ce cas ?

Une question connexe. Est-ce que guest() est complètement opposé à check() ou est-ce qu'il y a des circonstances où ils peuvent retourner les mêmes résultats ?

Merci de votre attention !

13voto

Wesley Agena Points 151

L'intergiciel d'authentification vous permet de spécifier le type de gardien d'authentification que vous souhaitez utiliser. Laravel 5.2 est livré avec deux types d'authentification, web". y 'api' .

La façade Auth utilise par défaut la garde "web" si aucune n'est spécifiée. Ainsi, par exemple : Auth::user() le fait par défaut : Auth::guard('web')->user()

L'autre pilote d'authentification, appelé 'api' . Ainsi, par exemple, vous pouvez appeler votre intergiciel comme suit : $this->middleware('auth:api');

Ceci vérifiera que l'utilisateur est authentifié par api_token au lieu de session. Ensuite, vous pouvez obtenir une instance de l'utilisateur par Auth::guard('api')->user() au lieu de Auth::user() ce qui est la même chose que Auth::guard('web')->user()

Vous l'utiliserez si votre application dispose d'un point d'accès à l'API qui n'est autorisé qu'aux utilisateurs connectés. Un utilisateur peut alors faire une demande du type yourapp.com/api-metho

I h

A \framework\src\Illuminate\Auth\GuardHelpers.php

2voto

Filip Koblański Points 5745

Il n'y a pas de différence. Auth que vous verrez que la façade de la Auth::guest() est une abréviation de l'expression Auth::guard($guard)->guest() . Auth::check() est un :

/**
 * Determine if the current user is authenticated.
 *
 * @return bool
 */
public function check()
{
    return ! is_null($this->user());
}

et Auth::guest() est un opposé de Auth::check() :

/**
 * Determine if the current user is a guest.
 *
 * @return bool
 */
public function guest()
{
    return ! $this->check();
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X