Heim > PHP-Framework > Laravel > Hauptteil

So implementieren Sie berechtigungsbasiertes dynamisches Routing und Seitensprung in Laravel

王林
Freigeben: 2023-11-04 15:27:29
Original
1049 Leute haben es durchsucht

So implementieren Sie berechtigungsbasiertes dynamisches Routing und Seitensprung in Laravel

Die Implementierung von berechtigungsbasiertem dynamischem Routing und Seitensprüngen in Laravel kann uns dabei helfen, Benutzerzugriffsberechtigungen flexibler zu steuern und eine verfeinerte Berechtigungsverwaltung zu erreichen. Im Folgenden kombiniert der Autor tatsächliche Codebeispiele, um detailliert vorzustellen, wie erlaubnisbasiertes dynamisches Routing und Seitensprünge in Laravel implementiert werden.

  1. Grundprinzip

Die Berechtigungskontrolle in Laravel wird normalerweise mithilfe von Middleware implementiert, und dynamisches Routing und Seitensprünge basierend auf Berechtigungen werden ebenfalls mithilfe von Middleware implementiert. Insbesondere können wir beim Definieren der Route Middleware hinzufügen und dann mithilfe der Middleware feststellen, ob der Benutzer über die Berechtigung zum Zugriff auf die Route verfügt. Andernfalls wird der Benutzer zur Seite mit der Aufforderung zum nicht autorisierten Zugriff oder zu anderen angegebenen Seiten weitergeleitet.

  1. Implementierungsschritte

(1) Erstellen Sie eine Route

Zuerst müssen wir die Routen definieren, die eine Berechtigungskontrolle in der Route erfordern. Beim Definieren einer Route können Sie die Middleware-Methode verwenden, um die Middleware anzugeben, wie unten gezeigt:

Route::get('/admin/user/index', 'UserController@index')->middleware('permission:user-index');
Nach dem Login kopieren

Unter diesen bedeutet „permission:user-index“, dass die Middleware mit dem Namen „permission“ für die Berechtigungsbeurteilung verwendet wird. Hier legen wir über „user-index“ die benötigten Berechtigungen fest. Dieser „Benutzerindex“ kann entsprechend der tatsächlichen Situation als andere Berechtigungsnamen definiert werden.

(2) Middleware erstellen

Als nächstes müssen wir Middleware für die Berechtigungsbeurteilung und den Seitensprung erstellen. In Laravel können Sie den Befehl php artisan make:middleware verwenden, um Middleware zu erstellen, wie unten gezeigt:

php artisan make:middleware PermissionMiddleware
Nach dem Login kopieren

Nach Abschluss der Ausführung wird die Datei PermissionMiddleware.php im Verzeichnis app/Http/Middleware generiert.

(3) Middleware-Logik schreiben

In der Datei app/Http/Middleware/PermissionMiddleware.php müssen wir den Logikcode der Middleware schreiben. In diesem Beispiel können wir die Auth-Fassade von Laravel verwenden und sie mit unserem eigenen Berechtigungssystem kombinieren, um zu bestimmen, ob der Benutzer die Berechtigung zum Zugriff auf die Route hat.

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateSupportFacadesAuth;

class PermissionMiddleware
{
    public function handle($request, Closure $next, $permission)
    {
        // 获取当前用户
        $user = auth()->user();

        // 判断是否有权限访问
        if (!$user->can($permission)) {
            // 无权限访问,进行跳转
            abort(404);
        }

        // 有权限访问,继续执行
        return $next($request);
    }
}
Nach dem Login kopieren

Unter diesen ist der Parameter $permission der in der Routendefinition übergebene Berechtigungsname, mit dem ermittelt werden kann, ob der aktuelle Benutzer über die Berechtigung zum Zugriff auf die Route verfügt. Wenn keine Berechtigung vorliegt, können wir zum Springen die Abbruchfunktion verwenden. Hier verwenden wir abort(404), um zur 404-Seite zu springen. Sie können es auch entsprechend der tatsächlichen Situation ändern.

(4) Middleware registrieren

Bevor wir Middleware verwenden, müssen wir die Middleware in der Laravel-Anwendung registrieren. In der Datei app/Http/Kernel.php finden Sie das Attribut $middlewareGroups und das Attribut $routeMiddleware. Wir können Middleware separat in diesen beiden Eigenschaften registrieren.

Gebunden an die $middlewareGroups-Eigenschaft:

'web' => [
    // ...
    AppHttpMiddlewarePermissionMiddleware::class,
],
Nach dem Login kopieren

Gebunden an die $routeMiddleware-Eigenschaft:

'permission' => AppHttpMiddlewarePermissionMiddleware::class,
Nach dem Login kopieren

Hier binden wir PermissionMiddleware an die „Web“-Middleware-Gruppe, was bedeutet, dass die Middleware in allen Web-Routing-Anfragen implementiert wird.

(5) Test

Nach Abschluss der oben genannten Schritte können wir testen. Während dieses Tests können wir die entsprechende Rolle in der Datenbank manuell autorisieren und dann auf die entsprechende URL zugreifen, um zu sehen, ob wir über Zugriffsrechte verfügen. Ich werde hier nicht auf Details eingehen.

  1. Zusammenfassung

Durch die oben genannten Schritte können wir berechtigungsbasiertes dynamisches Routing und Seitensprung in Laravel implementieren. Durch den Einsatz von Middleware können wir unser eigenes Berechtigungssystem verwenden, um Benutzerzugriffsberechtigungen flexibel zu steuern und eine verfeinerte Berechtigungsverwaltung zu erreichen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie berechtigungsbasiertes dynamisches Routing und Seitensprung in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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