Heim > PHP-Framework > Laravel > Hauptteil

So legen Sie Hintergrundberechtigungen in Laravel fest (detaillierte Schritte)

PHPz
Freigeben: 2023-04-03 19:23:31
Original
1278 Leute haben es durchsucht

Laravel ist ein beliebtes PHP-Framework, das Entwicklern viele Annehmlichkeiten und Tools bietet, um den Entwicklungsprozess zu beschleunigen. Eine besonders nützliche Funktion ist das Backend-Verwaltungsberechtigungssystem. Durch das Festlegen der Backend-Berechtigungen von Laravel stellen Sie sicher, dass nur autorisierte Benutzer auf die Admin-Oberfläche Ihrer Anwendung zugreifen können. In diesem Artikel erfahren Sie, wie Sie Hintergrundberechtigungen in Laravel festlegen.

Schritt 1: Installieren Sie die erforderlichen Pakete

Das Einrichten von Hintergrundberechtigungen in Laravel erfordert die Installation der folgenden Pakete:

  • Laravel Framework
  • Laravel Permission

Laravel Permission ist ein beliebtes Berechtigungsverwaltungspaket, mit dem Sie problemlos ein Berechtigungssystem hinzufügen können zu Ihrer Bewerbung. Sie können es über den Composer-Paketmanager mit dem folgenden Befehl in Ihrem Laravel-Projekt installieren:

composer require spatie/laravel-permission
Nach dem Login kopieren

Nachdem die Installation abgeschlossen ist, müssen Sie den Dienstanbieter und die Fassade in config/app.php hinzufügen: config/app.php中添加服务提供商和门面:

'providers' => [
    ...
    Spatie\Permission\PermissionServiceProvider::class,
],

'aliases' => [
    ...
    'Permission' => Spatie\Permission\Models\Permission::class,
    'Role' => Spatie\Permission\Models\Role::class,
],
Nach dem Login kopieren

步骤二:创建路由和控制器

现在,您需要创建一组路由和控制器来管理应用程序权限。您可以在Web路由文件中定义这些路由,例如:

Route::group(['middleware' => ['auth']], function () {

    // 管理角色和权限
    Route::resource('roles', 'RoleController');
    Route::resource('permissions', 'PermissionController');

    // 管理用户角色分配
    Route::resource('users', 'UserController');
    Route::post('users/{user}/assign-roles', 'UserController@assignRoles')->name('users.assign.roles');
    Route::delete('users/{user}/remove-roles/{role}', 'UserController@removeRoles')->name('users.remove.roles');

});
Nach dem Login kopieren

此示例中,我们定义了四个不同的路由:

  • roles:用于管理应用程序中的角色。
  • permissions:用于管理应用程序中的权限。
  • users:用于管理应用程序中的用户,以及为他们分配角色。
  • assign-rolesremove-roles:用于为应用程序中的用户分配和删除角色。

下一步,创建控制器,例如:

php artisan make:controller RoleController
Nach dem Login kopieren

在控制器中,您需要编写与路由匹配的方法。例如,当用户访问roles路由时,Laravel将调用RoleController中的index方法:

public function index()
{
    $roles = Role::paginate(10);

    return view('roles.index', compact('roles'));
}
Nach dem Login kopieren

这将返回一个包含角色列表的视图,并使用Laravel嵌套路由将其发送回浏览器。在视图中,您可以使用Laravel Blade模板引擎渲染数据,并在需要的情况下向用户显示表单和按钮。

步骤三:定义应用程序权限

为了限制用户对应用程序管理区域的访问,您需要定义哪些角色可以执行哪些操作。例如,您可以将管理员角色分配给具有完全访问权限的用户,而只能编辑文章的编辑者角色分配给另一组用户。

在Laravel Permission软件包中,您可以使用PermissionRole模型来定义和管理这些权限。例如,要创建一个名为“编辑文章”的权限,您可以使用以下代码:

use Spatie\Permission\Models\Permission;

$editArticles = Permission::create(['name' => 'edit articles']);
Nach dem Login kopieren

这将创建一个新的权限,并将其存储在数据库中。现在,您可以将其分配给任何其他角色,如管理员或编辑者。

步骤四:使用中间件来保护路由

现在,您需要使用auth中间件来限制对管理路由的访问。此中间件将确保用户必须登录才能访问受保护的路由。

您可以使用Laravel的Route::group

Route::group(['middleware' => ['auth']], function () {
    // 受保护的路由
});
Nach dem Login kopieren
Schritt zwei: Routen und Controller erstellen

Jetzt müssen Sie eine Reihe von Routen und Controllern erstellen, um Anwendungsberechtigungen zu verwalten. Sie können diese Routen in einer Web-Routing-Datei definieren, zum Beispiel:

if(auth()->user()->can('edit articles')){
    // 可以编辑文章
} else {
    // 无权限
}
Nach dem Login kopieren

In diesem Beispiel haben wir vier verschiedene Routen definiert:

roles: wird zum Verwalten von Rollen in der Anwendung verwendet.

permissions: Wird zum Verwalten von Berechtigungen in Anwendungen verwendet.

users: Wird verwendet, um Benutzer in der Anwendung zu verwalten und ihnen Rollen zuzuweisen.

🎜assign-roles und remove-roles: werden zum Zuweisen und Entfernen von Rollen für Benutzer in der Anwendung verwendet. 🎜🎜🎜 Als nächstes erstellen Sie einen Controller, zum Beispiel: 🎜rrreee🎜Im Controller müssen Sie Methoden schreiben, die zu den Routen passen. Wenn ein Benutzer beispielsweise auf die Route roles zugreift, ruft Laravel die Methode index in RoleController auf: 🎜rrreee🎜Dies gibt eine Liste von zurück Rollen anzeigen und mithilfe des verschachtelten Laravel-Routings an den Browser zurücksenden. In einer Ansicht verwenden Sie die Laravel Blade-Vorlagen-Engine, um Daten zu rendern und dem Benutzer bei Bedarf Formulare und Schaltflächen anzuzeigen. 🎜🎜Schritt drei: Anwendungsberechtigungen definieren🎜🎜Um den Benutzerzugriff auf den Anwendungsadministrationsbereich einzuschränken, müssen Sie definieren, welche Rollen welche Aktionen ausführen können. Beispielsweise können Sie die Rolle „Administrator“ einem Benutzer mit vollem Zugriff zuweisen und die Rolle „Editor“, der nur Artikel bearbeiten kann, einer anderen Gruppe von Benutzern. 🎜🎜Im Laravel Permission-Paket können Sie die Modelle Permission und Role verwenden, um diese Berechtigungen zu definieren und zu verwalten. Um beispielsweise eine Berechtigung namens „Beiträge bearbeiten“ zu erstellen, würden Sie den folgenden Code verwenden: 🎜rrreee🎜 Dadurch wird eine neue Berechtigung erstellt und in der Datenbank gespeichert. Jetzt können Sie es jeder anderen Rolle zuweisen, z. B. Administrator oder Editor. 🎜🎜Schritt 4: Verwenden Sie Middleware, um die Route zu sichern🎜🎜Jetzt müssen Sie die auth-Middleware verwenden, um den Zugriff auf die Verwaltungsroute einzuschränken. Diese Middleware stellt sicher, dass Benutzer angemeldet sein müssen, um auf geschützte Routen zugreifen zu können. 🎜🎜Sie können die Route::group-Methode von Laravel verwenden, um Ihre Routendefinition zu verpacken und die Middleware auf die gesamte Gruppe anzuwenden: 🎜rrreee🎜Jetzt haben nur authentifizierte Benutzer Zugriff auf diese Routen. 🎜🎜Schritt fünf: Verwenden Sie die Laravel-Berechtigung, um den Zugriff zu autorisieren🎜🎜Schließlich müssen Sie das Laravel-Berechtigungspaket verwenden, um zu steuern, welche Rollen bestimmte Vorgänge ausführen können. Um beispielsweise sicherzustellen, dass nur Benutzer mit der Berechtigung „Artikel bearbeiten“ Artikel in Ihrer App bearbeiten können, können Sie den folgenden Code verwenden: 🎜rrreee🎜 Dieses Code-Snippet prüft, ob der aktuell authentifizierte Benutzer über die Berechtigung „Artikel bearbeiten“ verfügt. Wenn der Benutzer über Berechtigungen verfügt, kann er die entsprechenden Vorgänge ausführen. Andernfalls haben sie keine Befugnis, Änderungen vorzunehmen. 🎜🎜Fazit🎜🎜 Das Einrichten von Backend-Administratorberechtigungen in Laravel erfordert ein paar Schritte, aber sobald Sie damit vertraut sind, können Sie mithilfe des Laravel-Berechtigungspakets ganz einfach steuern, welche Benutzer welche Aktionen ausführen können. So stellen Sie sicher, dass nur autorisierte Benutzer Zugriff auf Ihren Anwendungsverwaltungsbereich haben, schützen so die Sicherheit Ihrer Daten und reduzieren Sicherheitsrisiken. 🎜

Das obige ist der detaillierte Inhalt vonSo legen Sie Hintergrundberechtigungen in Laravel fest (detaillierte Schritte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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