Laravel - Autorisierung

Im vorherigen Kapitel haben wir uns mit dem Authentifizierungsprozess in Laravel befasst. In diesem Kapitel wird der Autorisierungsprozess in Laravel erläutert.

Unterschied zwischen Authentifizierung und Autorisierung

Bevor Sie sich weiter mit dem Autorisierungsprozess in Laravel befassen, sollten Sie den Unterschied zwischen Authentifizierung und Autorisierung verstehen.

Im authenticationDas System oder die Webanwendung identifiziert seine Benutzer anhand der von ihnen angegebenen Anmeldeinformationen. Wenn sich herausstellt, dass die Anmeldeinformationen gültig sind, werden sie authentifiziert oder nicht.

Im authorizationDas System oder die Webanwendung prüft, ob die authentifizierten Benutzer auf die Ressourcen zugreifen können, auf die sie zugreifen oder die sie anfordern möchten. Mit anderen Worten, es überprüft ihre Rechte und Berechtigungen für die angeforderten Ressourcen. Wenn festgestellt wird, dass sie auf die Ressourcen zugreifen können, bedeutet dies, dass sie autorisiert sind.

So, authentication beinhaltet die Überprüfung der Gültigkeit der Benutzeranmeldeinformationen und authorization Dabei werden die Rechte und Berechtigungen für die Ressourcen eines authentifizierten Benutzers überprüft.

Zulassungsmechanismus in Laravel

Laravel bietet einen einfachen Mechanismus für die Autorisierung, der zwei Hauptmethoden enthält, nämlich Gates und Policies.

Gates und Richtlinien schreiben

Gates werden verwendet, um zu bestimmen, ob ein Benutzer berechtigt ist, eine bestimmte Aktion auszuführen. Sie sind typischerweise in definiertApp/Providers/AuthServiceProvider.phpmit Torfassade. Gates sind auch Funktionen, die für die Ausführung des Autorisierungsmechanismus deklariert sind.

Richtlinien werden innerhalb eines Arrays deklariert und in Klassen und Methoden verwendet, die den Autorisierungsmechanismus verwenden.

In den folgenden Codezeilen wird erläutert, wie Sie Gates und Richtlinien zum Autorisieren eines Benutzers in einer Laravel-Webanwendung verwenden. Beachten Sie, dass in diesem Beispiel dieboot Die Funktion wird zum Autorisieren der Benutzer verwendet.

<?php

namespace App\Providers;

use Illuminate\Contracts\Auth\Access\Gate as GateContract;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider{
   /**
      * The policy mappings for the application.
      *
      * @var array
   */
   
   protected $policies = [
      'App\Model' => 'App\Policies\ModelPolicy',
   ];
   
   /**
      * Register any application authentication / authorization services.
      *
      * @param \Illuminate\Contracts\Auth\Access\Gate $gate
      * @return void
   */
   
   public function boot(GateContract $gate) {
      $this->registerPolicies($gate);
      //
   }
}