Cet article présente principalement la méthode de mise en œuvre de l'authentification de connexion utilisateur du framework Laravel. Il analyse les principes, les méthodes de mise en œuvre et les précautions associées de l'authentification de connexion utilisateur du framework Laravel sous forme d'exemples. Les amis dans le besoin peuvent s'y référer
Cet article décrit la méthode d'implémentation de l'authentification de connexion utilisateur dans le framework Laravel à travers des exemples. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants : Pour détecter si l'utilisateur est connecté à Laravel, il y a le code suivant :if ( !Auth::guest() ) { return Redirect::to('/dashboard'); }
appelé ? Auth::guest
class Auth extends Facade { /** * Get the registered name of the component. * * @return string */ protected static function getFacadeAccessor() { return 'auth'; } }
app['auth'] Quand app['auth'] a-t-il été créé ? > méthode S'enregistrera :
AuthServiceProvider::register
Alors pourquoi est-il finalement transféré vers ? Regardez la pile :
$this->app->bindShared('auth', function($app) { // Once the authentication service has actually been requested by the developer // we will set a variable in the application indicating such. This helps us // know that we need to set any queued cookies in the after event later. $app['auth.loaded'] = true; return new AuthManager($app); });
Regardez le code du pilote :
Illuminate\Support\Facades\Auth::guest() Illuminate\Support\Facades\Facade::__callStatic Illuminate\Auth\AuthManager->guest() Illuminate\Support\Manager->__call public function __call($method, $parameters) { return call_user_func_array(array($this->driver(), $method), $parameters); }
Non La méthode
getDefaultDrivepublic function driver($driver = null) { $driver = $driver ?: $this->getDefaultDriver(); // If the given driver has not been created before, we will create the instances // here and cache it so we can return it next time very quickly. If there is // already a driver created by this name, we'll just return that instance. if ( ! isset($this->drivers[$driver])) { $this->drivers[$driver] = $this->createDriver($driver); } return $this->drivers[$driver]; }
sera appelée finalement, le pilote configuré dans le fichier de configuration sera appelé s'il est configuré avec
<🎜. >/** * Get the default authentication driver name. * * @return string */ public function getDefaultDriver() { return $this->app['config']['auth.driver']; }
sera appelé
'driver' => 'eloquent'
appelle finalement la méthode
public function createEloquentDriver() { $provider = $this->createEloquentProvider(); return new Guard($provider, $this->app['session.store']); }
La logique ici obtient d'abord les informations utilisateur de la session L'étrange. le problème est que la session enregistre uniquement l'ID utilisateur, puis obtient cet ID pour obtenir les informations utilisateur de la base de données Auth::guest
Guard::guest
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!