Heim  >  Artikel  >  Backend-Entwicklung  >  Authentifizierung der Benutzeranmeldung im Laravel-Framework

Authentifizierung der Benutzeranmeldung im Laravel-Framework

巴扎黑
巴扎黑Original
2018-05-15 09:22:481845Durchsuche

Dieser Artikel stellt hauptsächlich die Implementierungsmethode der Benutzer-Login-Authentifizierung des Laravel-Frameworks vor. Er analysiert die Prinzipien, Implementierungsmethoden und zugehörigen Vorsichtsmaßnahmen der Benutzer-Login-Authentifizierung des Laravel-Frameworks in Form von Beispielen

Dieser Artikel beschreibt die Implementierungsmethode der Benutzeranmeldungsauthentifizierung im Laravel-Framework anhand von Beispielen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Um zu erkennen, ob der Benutzer in Laravel angemeldet ist, gibt es den folgenden Code:

if ( !Auth::guest() )
{
  return Redirect::to('/dashboard');
}

Wie ist Auth::guest angerufen?

Laravel verwendet den Fassadenmodus. Die relevanten Fassadenklassen sind im Ordner laravel/framework/src/Illuminate/Support/Facades definiert. Sehen Sie sich die Definition der Auth-Klasse an:

class Auth extends Facade {
  /**
   * Get the registered name of the component.
   *
   * @return string
   */
  protected static function getFacadeAccessor() { return 'auth'; }
}

Laravel-Framework, der Fassadenmodus verwendet Reflektion, und die zugehörigen Methoden rufen tatsächlich die Methoden in app['auth'] auf. Wann wurde app['auth'] erstellt? >

Methode Wird registriert:

AuthServiceProvider::register

Warum wird es dann schließlich übertragen? Schauen Sie sich den Stapel an:
$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);
});

Sehen Sie sich den Treibercode an:
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);
}

Nein Die
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];
}
getDefaultDrive

-Methode

wird aufgerufen. Letztendlich wird der in der Konfigurationsdatei konfigurierte Treiber aufgerufen >
/**
* Get the default authentication driver name.
*
* @return string
*/
public function getDefaultDriver()
{
    return $this->app['config']['auth.driver'];
}
, dann wird

Also ruft
'driver' => 'eloquent'
letztendlich die

-Methode auf

public function createEloquentDriver()
{
    $provider = $this->createEloquentProvider();
    return new Guard($provider, $this->app['session.store']);
}
Die Logik hier ruft zuerst die Benutzerinformationen aus der Sitzung ab Die Sache ist, dass die Sitzung nur die Benutzer-ID speichert und dann diese ID abruft, um Benutzerinformationen aus der Datenbank abzurufen

Auth::guest

Das obige ist der detaillierte Inhalt vonAuthentifizierung der Benutzeranmeldung im Laravel-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn