Heim  >  Artikel  >  PHP-Framework  >  Lassen Sie uns über Berechtigungsmethoden in Laravel sprechen

Lassen Sie uns über Berechtigungsmethoden in Laravel sprechen

PHPz
PHPzOriginal
2023-04-19 10:07:46810Durchsuche

Laravel ist ein sehr beliebtes PHP-Framework mit zahlreichen praktischen Funktionen. Dazu gehört eine Funktion namens „Berechtigungen“. In Laravel helfen Berechtigungen Entwicklern dabei, ein Zugriffskontrollsystem für ihre Anwendungen einzurichten und sicherzustellen, dass nur autorisierte Benutzer auf bestimmte API-Endpunkte, Seiten oder Vorgänge zugreifen können. Als nächstes stellen wir die Berechtigungsmethoden in Laravel vor.

  1. Rollen und Berechtigungen

In Laravel sind Berechtigungen und Rollen verwandte Konzepte. Rollen sind unterschiedliche Benutzertypen, deren unterschiedliche Rollen auf unterschiedliche Teile der Anwendung zugreifen können. Berechtigungen beziehen sich auf die Regeln, die steuern, auf welche Teile ein Benutzer zugreifen kann.

In Laravel können Rollen über das Befehlszeilentool artisan erstellt werden. Beispielsweise können wir mit dem folgenden Handwerkerbefehl eine Rolle mit dem Namen „Administrator“ erstellen:

php artisan make:role admin

Ebenso können wir eine Rolle mit dem Namen „Texteditor“ erstellen:

php artisan make:role editor

Dann können wir diese Rollen Benutzern zuweisen.

  1. Autorisierung

In Laravel können wir die Autorisierung verwenden, um den Benutzerzugriff auf verschiedene Teile der Anwendung einzuschränken. In der Steuerung können Berechtigungen definiert werden, um sicherzustellen, dass nur autorisierte Benutzer bestimmte Vorgänge ausführen können.

Zum Beispiel können wir einen Controller namens „AdminUsersController“ erstellen, der nur Administratorbenutzern den Zugriff ermöglicht:

php artisan make:controller AdminUsersController

Als nächstes müssen wir die Autorisierungskomponente im Konstruktor des Controllers definieren:

public function __construct()
{
    $this->authorize('admin');
}

When Wenn ein nicht autorisierter Wenn ein Benutzer versucht, auf diesen Controller zuzugreifen, wird eine Ausnahme ausgelöst. Wir können Ausnahmehandler im ExceptionHandler von Laravel definieren.

  1. Berechtigungstabelle

In Laravel können wir eine Tabelle namens „Berechtigungen“ erstellen, um Berechtigungen für Anwendungsfunktionen zu speichern. Sie können das folgende Befehlszeilentool artisan verwenden, um eine Berechtigungstabelle zu erstellen:

php artisan make:model Permission -m

Dadurch wird eine Modelldatei mit dem Namen „Permission“ und eine zugehörige Migrationsdatei generiert.

Die Modelldatei enthält eine Methode namens „role“, mit der wir schnell die mit der Rolle verbundenen Berechtigungen erhalten können:

public function roles()
{
    return $this->belongsToMany(Role::class);
}

Wir können dann eine beliebige Anzahl von Berechtigungen in der Modelldatei definieren.

Autorisierungsregeln können erstellt und verwaltet werden, indem der Admin-Benutzer in der Anwendung artisan über die Befehlszeile ausführt. Schauen wir uns als Nächstes an, wie diese Autorisierungsregeln in der Praxis angewendet werden.

  1. Autorisierungsfassade

In Laravel können wir die Autorisierungsfassade verwenden, um die Verwendung von Autorisierungen zu vereinfachen. Mithilfe der Fassade können wir leicht überprüfen, ob der aktuell angemeldete Benutzer die Berechtigung zum Zugriff auf einen Vorgang oder eine Ressource hat.

Zum Beispiel können wir die „Gate“-Fassade verwenden, um zu prüfen, ob der aktuelle Benutzer die Berechtigung namens „edit-post“ hat:

if (Gate::allows('edit-post', $post)) {
    // 用户有权编辑帖子
}

Wir können die „Gate“-Fassade auch verwenden, um neue Autorisierungsregeln zur Unterstützung unserer Anwendung zu definieren Spezifische Anforderungen:

Gate::define('update-post', function ($user, $post) {
    return $user->id === $post->user_id;
});

In diesem Beispiel definieren wir eine neue Autorisierungsregel, sodass nur der Eigentümer des Beitrags die Berechtigung hat, ihn zu aktualisieren.

Das Berechtigungssystem von Laravel ist eine sehr praktische Funktion, die es Anwendungsentwicklern ermöglicht, einfach zu steuern, auf welche Abschnitte oder Vorgänge autorisierte Benutzer zugreifen können. Durch die Verwendung von Rollen und Berechtigungen können wir problemlos ein leistungsstarkes und komplexes Zugangskontrollsystem aufbauen.

Kurz gesagt bietet das Laravel-Framework eine einfache und leistungsstarke Methode zur Implementierung der Berechtigungsverwaltung, die es Anwendungsentwicklern erleichtert, Benutzerrollen und ihre Zugriffsberechtigungen zu definieren und zu verwalten und so die Sicherheit der gesamten Anwendung besser zu kontrollieren.

Das obige ist der detaillierte Inhalt vonLassen Sie uns über Berechtigungsmethoden in Laravel sprechen. 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