Laravel ist ein sehr beliebtes PHP-Framework mit vielen leistungsstarken Funktionen, einschließlich Autorisierung. In diesem Artikel werden wir uns mit der Verwendung der Laravel-Autorisierung befassen.
Was ist eine Autorisierung?
In Webanwendungen bezieht sich die Autorisierung auf den Prozess, ob ein Benutzer das Recht hat, auf bestimmte Ressourcen zuzugreifen oder bestimmte Vorgänge auszuführen. Die Autorisierung erfolgt in der Regel nach der Authentifizierung.
Grundlagen der Laravel-Autorisierung
Die Grundidee der Verwendung der Laravel-Autorisierung besteht darin, Richtlinien zu definieren und diese Richtlinien dann zu verwenden, um zu bestimmen, ob ein Benutzer die Berechtigung hat, auf eine bestimmte Ressource zuzugreifen. Eine Richtlinie ist eine einfache PHP-Klasse, die die Logik zur Prüfung definiert, ob ein Benutzer auf eine bestimmte Ressource zugreifen kann.
Definieren Sie eine Richtlinie
Um eine Richtlinie zu erstellen, führen Sie den folgenden Befehl aus:
php artisan make:policy PostPolicy --model=Post
Dieser Befehl erstellt eine Klasse (Richtlinie) namens PostPolicy, die dem Post-Modell zugeordnet wird. Sie können in dieser Klasse Methoden definieren, die bestimmen, ob der Benutzer Zugriff auf das Modell hat.
Hier ist eine Beispielrichtlinie, um zu bestimmen, ob ein Benutzer einen Beitrag aktualisieren kann:
class PostPolicy { use HandlesAuthorization; public function update(User $user, Post $post) { return $user->id === $post->user_id; } }
In dieser Richtlinie akzeptiert die Update-Methode zwei Parameter: $user und $post. $user ist eine Instanz des aktuellen Benutzers und $post ist eine Instanz des zu aktualisierenden Beitrags. Diese Methode gibt einen booleschen Wert zurück, der angibt, ob der Benutzer berechtigt ist, den Beitrag zu aktualisieren. In diesem Beispiel sind Aktualisierungen zulässig, wenn der aktuelle Benutzer mit dem Autor des Beitrags identisch ist.
Registrieren Sie eine Strategie
Um eine Strategie zu verwenden, müssen Sie sie registrieren. Sie können die Richtlinie in der AuthServiceProvider-Klasse registrieren. In dieser Klasse können Sie die Richtlinienmethode verwenden, um das Modell einer Richtlinie zuzuordnen.
Zum Beispiel ordnet der folgende Code ein Post-Modell einer PostPolicy-Richtlinie zu:
protected $policies = [ 'App\Post' => 'App\Policies\PostPolicy', ];
Eine Richtlinie verwenden
Sobald Sie eine Richtlinie definiert und registriert haben, können Sie sie in Ihrer Anwendung verwenden. Um Richtlinien zu verwenden, verwenden Sie die Autorisierungsmethode im Controller oder anderswo.
Zum Beispiel prüft der folgende Code, ob der aktuelle Benutzer die Berechtigung hat, einen bestimmten Beitrag zu aktualisieren:
public function update(Post $post) { $this->authorize('update', $post); // The user is authorized to update the post... }
Im obigen Beispiel akzeptiert die Autorisierungsmethode zwei Parameter: den Richtliniennamen (in diesem Beispiel „update“) und die spezifische Ressource Eine Instanz von ($post in diesem Beispiel). Wenn der Benutzer Zugriff auf die Ressource hat, ist der Zugriff zulässig. Andernfalls wird eine AuthorizationException ausgelöst.
Fazit
Die Laravel-Autorisierung ist sehr leistungsfähig und kann verwendet werden, um festzustellen, ob ein Benutzer die Berechtigung hat, auf eine bestimmte Ressource zuzugreifen oder eine bestimmte Aktion auszuführen. In diesem Artikel haben wir die Grundlagen der Laravel-Autorisierung untersucht, einschließlich der Definition von Richtlinien, der Registrierung von Richtlinien und der Verwendung von Richtlinien. Ich hoffe, dieser Artikel hilft Ihnen dabei, die Autorisierungsfunktionen von Laravel besser zu nutzen.
Das obige ist der detaillierte Inhalt vonEine ausführliche Untersuchung der Verwendung der Laravel-Autorisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!