Laravel-Installationsberechtigungsverwaltung
Laravel ist ein sehr beliebtes PHP-Entwicklungsframework. Es bietet viele praktische Tools und Komponenten, die die Entwicklungseffizienz erheblich verbessern können. Bei der Entwicklung von Anwendungen ist häufig eine Benutzerrechteverwaltung erforderlich. Laravel bietet eine sehr praktische Berechtigungsverwaltungsfunktion, mit deren Hilfe wir die Berechtigungskontrolle schnell und sicher implementieren können.
In diesem Artikel wird die Installation und Konfiguration der Laravel-Berechtigungsverwaltung unter folgenden Aspekten vorgestellt:
- Installation von Laravel-Berechtigungsverwaltungskomponenten
- Datenbankmigration
- Benutzerauthentifizierung
- Rollen- und Berechtigungsverwaltung
- Middleware
- Routenschutz
1. Installieren Sie die Laravel-Berechtigungsverwaltungskomponente
In Laravel können wir die Spatie/Laravel-Berechtigungskomponente über Composer installieren, um die Berechtigungsverwaltungsfunktion zu implementieren. Wir können den folgenden Befehl im Stammverzeichnis des Projekts ausführen, um diese Komponente zu installieren:
composer require spatie/laravel-permission
Nachdem die Installation abgeschlossen ist, müssen wir den Dienstanbieter dieser Komponente in der Datei config/app.php hinzufügen:
'providers' => [ // ... SpatiePermissionPermissionServiceProvider::class, ],
At Gleichzeitig in derselben Datei die Fassade dieser Komponente hinzufügen in:
'aliases' => [ // ... 'Permission' => SpatiePermissionFacadesPermission::class, 'Role' => SpatiePermissionFacadesRole::class, ],
2. Datenbankmigration
Nach der Installation der Komponente müssen wir die Datenbankmigration ausführen, um berechtigungsbezogene Tabellen zu erstellen. Wir können den Befehl artisan verwenden, um die Datenbankmigrationsdatei zu generieren:
php artisan make:migration create_permission_tables
Öffnen Sie dann die generierte Migrationsdatei und fügen Sie den folgenden Code hinzu:
class CreatePermissionTables extends Migration { public function up() { Schema::create('permissions', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('guard_name'); $table->timestamps(); }); Schema::create('roles', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('guard_name'); $table->timestamps(); }); Schema::create('model_has_roles', function (Blueprint $table) { $table->integer('role_id')->unsigned(); $table->morphs('model'); $table->string('model_type')->nullable(); $table->string('guard_name'); $table->foreign('role_id')->references('id')->on('roles') ->onDelete('cascade'); $table->primary(['role_id', 'model_id', 'model_type']); }); Schema::create('model_has_permissions', function (Blueprint $table) { $table->integer('permission_id')->unsigned(); $table->morphs('model'); $table->string('model_type')->nullable(); $table->string('guard_name'); $table->foreign('permission_id')->references('id')->on('permissions') ->onDelete('cascade'); $table->primary(['permission_id', 'model_id', 'model_type']); }); Schema::create('role_has_permissions', function (Blueprint $table) { $table->integer('permission_id')->unsigned(); $table->integer('role_id')->unsigned(); $table->string('guard_name'); $table->foreign('permission_id')->references('id')->on('permissions') ->onDelete('cascade'); $table->foreign('role_id')->references('id')->on('roles') ->onDelete('cascade'); $table->primary(['permission_id', 'role_id']); }); } public function down() { Schema::dropIfExists('permissions'); Schema::dropIfExists('roles'); Schema::dropIfExists('model_has_roles'); Schema::dropIfExists('model_has_permissions'); Schema::dropIfExists('role_has_permissions'); } }
Dann können wir den Migrationsbefehl ausführen:
php artisan migrate
Auf diese Weise werden die zugehörigen Tabellen werden in der Datenbank erstellt.
3. Benutzerauthentifizierung
Als nächstes müssen wir die Benutzerauthentifizierungsfunktion in der Anwendung implementieren. Laravel hat uns ein sehr praktisches Benutzerauthentifizierungssystem zur Verfügung gestellt. Wir müssen nur den folgenden Befehl ausführen:
php artisan make:auth
Dieser Befehl generiert eine Seite mit Benutzeranmeldung, Registrierung, Passwortänderung und anderen Funktionen. Durch diese Vorgänge können wir Benutzer erstellen und verwalten.
4. Rollen- und Berechtigungsverwaltung
Bei der Laravel-Berechtigungsverwaltung sind Rollen und Berechtigungen sehr wichtige Konzepte. Wir können Benutzerzugriffskontrollregeln über Rollen und Berechtigungen definieren.
- Rollen erstellen
Wir können die Rollenfassade verwenden, um Rollen zu erstellen. Zum Beispiel:
use SpatiePermissionModelsRole; $role = Role::create(['name' => 'admin']);
Der obige Code erstellt eine Rolle mit dem Namen „admin“.
- Berechtigungen erstellen
Ähnlich können wir die Berechtigungsfassade verwenden, um Berechtigungen zu erstellen:
use SpatiePermissionModelsPermission; $permission = Permission::create(['name' => 'create posts']);
Der obige Code erstellt eine Berechtigung namens „Beiträge erstellen“.
- Berechtigungen für Rollen erteilen
Da wir nun über Rollen und Berechtigungen verfügen, müssen wir auch Rollen Berechtigungen erteilen. Wir können dies mit der Methode „givePermissionTo“ der Rolle tun:
$role = Role::findByName('admin'); $permission = Permission::findByName('create posts'); $role->givePermissionTo($permission);
- Überprüfen Sie, ob der Benutzer über die Berechtigungen verfügt
Nachdem wir nun die Rolle und Berechtigungen definiert haben, können wir die von der Laravel-Berechtigungsverwaltung bereitgestellte Methode „can“ verwenden, um zu überprüfen, ob Der Benutzer hat die Berechtigungen. Zum Beispiel:
$user->can('create posts');
Der obige Code gibt einen booleschen Wert zurück, der angibt, ob der aktuelle Benutzer über die Berechtigung „Beiträge erstellen“ verfügt.
- Überprüfen Sie, ob der Benutzer eine Rolle hat
Ebenso können wir auch die Methode hasRole verwenden, um zu überprüfen, ob der Benutzer eine bestimmte Rolle hat. Zum Beispiel:
$user->hasRole('admin');
Der obige Code gibt einen booleschen Wert zurück, der angibt, ob der aktuelle Benutzer die Rolle „Administrator“ hat.
5. Middleware
Wir können die Middleware von Laravel verwenden, um unsere Routen und Controller zu schützen und eine Berechtigungskontrolle zu erreichen. Hier ist der Beispielcode:
Route::group([ 'middleware' => ['role:admin'], ], function () { Route::get('/admin', function () { // }); }); Route::group([ 'middleware' => ['permission:create posts'], ], function () { Route::get('/new-post', function () { // }); });
Der obige Code schützt die Routen „/admin“ und „/new-post“ und ermöglicht den Zugriff nur Benutzern mit der Rolle „admin“ und der Berechtigung „Beiträge erstellen“.
6. Routenschutz
Schließlich müssen wir unsere Routen und Controller schützen. Um dies zu erreichen, können wir die Methoden „can“ und „authorise“ verwenden.
public function store(Request $request) { $this->authorize('create', Post::class); // ... } public function edit(Request $request, Post $post) { if (! $request->user()->can('edit', $post)) { abort(403); } // ... }
Der obige Code schützt die Speicher- und Bearbeitungsmethoden und ermöglicht den Zugriff nur Benutzern mit den Berechtigungen „Erstellen“ und „Bearbeiten“.
Zusammenfassung
Im Allgemeinen ist die Berechtigungsverwaltung von Laravel sehr bequem und sicher. Wir können die Berechtigungskontrolle implementieren, indem wir die Komponente spatie/laravel-permission installieren und die vielen von Laravel bereitgestellten Methoden und Funktionen verwenden, um Rollen und Berechtigungen zu verwalten. Durch Middleware und Routenschutz können wir unsere Anwendungen einfach schützen und den Benutzerzugriff einschränken.
Das obige ist der detaillierte Inhalt vonLaravel-Installationsberechtigungsverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Sowohl Django als auch Laravel sind Full-Stack-Frameworks. Django eignet sich für Python -Entwickler und komplexe Geschäftslogik, während Laravel für PHP -Entwickler und elegante Syntax geeignet ist. 1.Django basiert auf Python und folgt der "batteriebetriebenen" Philosophie, die für schnelle Entwicklung und hohe Parallelität geeignet ist. 2. Laravel basiert auf PHP, der die Entwicklererfahrung betont und für kleine bis mittlere Projekte geeignet ist.

Wie spielt Laravel eine Rolle in der Backend -Logik? Es vereinfacht und verbessert die Backend -Entwicklung durch Routing -Systeme, eloquentorm, Authentifizierung und Autorisierung, Ereignis und Zuhörer sowie Leistungsoptimierung. 1. Das Routing -System ermöglicht die Definition der URL -Struktur und die Anforderungsverarbeitungslogik. 2.Loquentorm vereinfacht die Datenbankinteraktion. 3. Das Authentifizierungs- und Autorisierungssystem ist für die Benutzerverwaltung geeignet. 4. Die Ereignis und der Hörer implementieren locker gekoppelte Codestruktur. 5. Leistungsoptimierung verbessert die Anwendungseffizienz durch Zwischenspeicherung und Warteschlange.

PHP und Laravel sind nicht direkt vergleichbar, da Laravel ein PHP-basierter Framework ist. 1.PHP ist für kleine Projekte oder schnelle Prototypen geeignet, da es einfach und direkt ist. 2. Laravel ist für große Projekte oder effiziente Entwicklung geeignet, da es umfangreiche Funktionen und Werkzeuge bietet, aber eine steile Lernkurve aufweist und möglicherweise nicht so gut ist wie reines PHP.

Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.

LaravelisabackendFrameworkBuiltonPhp, entworfene WebApplicationDevelopment.itfocuseSonserver-Sidelogic, DatabaSemanagement und Applicationsstruktur und CanBeintegratedWithFrontendTechnologies-ähnlich.

Möchten Sie das Laravel -Rahmen lernen, aber unter keinen Ressourcen oder dem wirtschaftlichen Druck leiden? Dieser Artikel bietet Ihnen ein kostenloses Lernen von Laravel und lehrt Sie, wie Sie Ressourcen wie Online -Plattformen, Dokumente und Community -Foren verwenden, um eine solide Grundlage für Ihre PHP -Entwicklungsreise zu schaffen.

Das Laravel -Entwicklungsprojekt wurde aufgrund seiner Flexibilität und Kraft ausgewählt, um den Bedürfnissen unterschiedlicher Größen und Komplexität zu entsprechen. Laravel bietet Routing-System, eloquentorm, Artisan Command Line und andere Funktionen und unterstützt die Entwicklung von einfachen Blogs bis hin zu komplexen Systemen auf Unternehmensebene.

Laravel bietet einen umfassenden Auth-Framework für die Implementierung von Benutzeranmeldungsfunktionen, einschließlich: Definieren von Benutzermodellen (eloquentes Modell), Erstellen von Anmeldeformularen (Blattvorlagen-Engine), Schreiben von Login-Controllern (Erben von Auth \ Logincontroller), Überprüfung von Login-Anfragen (Auth :: Versuch) Umleitung nach Anmeldung (Redirect). Darüber hinaus enthält das Auth -Framework auch Funktionen wie das Zurücksetzen von Kennwörtern, das Registrieren und Überprüfen von E -Mails. Weitere Informationen finden Sie in der Laravel -Dokumentation: https://laravel.com/doc
