Maison >développement back-end >tutoriel php >Authentification de connexion de l'utilisateur du framework Laravel

Authentification de connexion de l'utilisateur du framework Laravel

巴扎黑
巴扎黑original
2018-05-15 09:22:481908parcourir

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');
}
Comment ça va

appelé ? Auth::guest

Laravel utilise le mode Facade. Les classes de façade pertinentes sont définies dans le dossier laravel/framework/src/Illuminate/Support/Facades :

class Auth extends Facade {
  /**
   * Get the registered name of the component.
   *
   * @return string
   */
  protected static function getFacadeAccessor() { return 'auth'; }
}
framework laravel, le mode Façade utilise la réflexion et les méthodes associées appellent en fait les méthodes dans

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

getDefaultDrive
public 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'];
}
, puis

sera appelé

'driver' => 'eloquent'
Donc

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::guestGuard::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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn