Heim > Backend-Entwicklung > PHP-Tutorial > Authentifizierung der Benutzeranmeldung im Laravel-Framework

Authentifizierung der Benutzeranmeldung im Laravel-Framework

巴扎黑
Freigeben: 2023-03-16 08:22:02
Original
1908 Leute haben es durchsucht

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');
}
Nach dem Login kopieren

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'; }
}
Nach dem Login kopieren

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);
});
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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];
}
Nach dem Login kopieren
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'];
}
Nach dem Login kopieren
, dann wird

Also ruft
'driver' => 'eloquent'
Nach dem Login kopieren
letztendlich die

-Methode auf

public function createEloquentDriver()
{
    $provider = $this->createEloquentProvider();
    return new Guard($provider, $this->app['session.store']);
}
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage