In Laravel ist Middleware eine sehr praktische und wichtige Funktion, die den Prozess zwischen dem Eingang der Anfrage in der Anwendung und der Rückgabe der Antwort an den Client abwickelt. Während dieser Prozesse müssen Sie möglicherweise Vorgänge am Benutzer ausführen, z. B. die Berechtigungen des Benutzers überprüfen oder den Benutzer authentifizieren. Wenn der Benutzer Ihre Prüfung nicht besteht, müssen Sie ihn möglicherweise auf eine andere Seite umleiten. In diesem Artikel wird erläutert, wie Sie Middleware in Laravel schreiben, um den Middleware-Sprung zu implementieren.
1. Middleware erstellen
Schritt 1: Öffnen Sie das Terminal und verwenden Sie den Artisan-Befehl von Laravel, um die Middleware zu erstellen:
php artisan make:middleware <middleware-name>
Zum Beispiel:
php artisan make:middleware EnsureUserIsAdmin
Schritt 2: Erstellen Sie eine neue Middleware im Verzeichnis app/Http/Middleware mit dem Namen Stellen Sie sicher, dass UserIsAdmin ist. Diese Middleware prüft, ob der aktuelle Benutzer bereits angemeldet ist und über Administratorrechte verfügt.
namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class EnsureUserIsAdmin { public function handle(Request $request, Closure $next){ if (!auth()->check() || !auth()->user()->is_admin) { return redirect('home'); } return $next($request); } }
Im obigen Code verwenden wir zunächst die Funktion auth(), um zu prüfen, ob der aktuelle Benutzer angemeldet ist. Wenn der Benutzer nicht angemeldet ist, leitet diese Middleware zur Startseite weiter. Wenn der Benutzer bereits angemeldet ist, prüfen Sie, ob der Benutzer über Administratorrechte verfügt. Wenn der Benutzer keine Administratorrechte hat, leitet die Middleware auf die Startseite weiter. Andernfalls lässt die Middleware die Fortsetzung der Anfrage zu.
2. Middleware verwenden
Schritt 1: Suchen Sie in der Datei app/Http/Kernel.php das Array $middlewareGroups. Dieses Array enthält die Middleware-Gruppen, die durch die Anwendung weitergeleitet werden müssen.
protected $middlewareGroups = [ 'web' => [ // ... ], 'api' => [ // ... ], ];
Schritt 2: Geben Sie im Array $middlewareGroups oben eine Gruppe für Ihre neue Middleware wie folgt an:
'admin' => [ \App\Http\Middleware\EnsureUserIsAdmin::class, ],
Im obigen Code verwenden wir admin als Namen der Middleware-Gruppe sowie das, was wir getan haben in Schritt Der Name der in Schritt 1 erstellten Middleware: ConsiderUserIsAdmin.
Schritt 3: Nachdem wir nun die Middleware selbst erstellt und angegeben haben, wo sie verwendet werden soll, müssen wir nun die Middleware in unserem Router verwenden. Öffnen Sie die Datei „routes/web.php“ und geben Sie an, dass die Route die Admin-Middleware-Gruppe verwendet, wie unten gezeigt:
Route::get('admin/users', 'Admin\UserController@index')->middleware('admin');
In der obigen Routendefinition verwenden wir den Middleware-Gruppennamen „admin“, um die Seite zu schützen, die auf AdminUserController@index zugreift.
3. Testen Sie die Middleware.
Starten Sie abschließend Ihren Entwicklungsserver und testen Sie Ihre neue Middleware. Besuchen Sie die Seite in Ihrem Anwendungsadministrator-Kontrollfeld. Wenn Sie keine Administratorrechte haben, sollten Sie zur Startseite weitergeleitet werden.
Bitte beachten Sie, dass dieser Artikel zeigt, wie Sie Middleware erstellen, um Middleware-Sprünge in der Laravel 5.7-Version zu implementieren. Bei anderen Versionen kann es etwas anders sein.
Zusammenfassung
Middleware ist eine sehr nützliche Funktion im Laravel-Framework, die problemlos auf Benutzer zugreifen und Middleware-Sprünge implementieren kann. In diesem Artikel haben wir erläutert, wie Sie Middleware erstellen und verwenden und wie Sie sie zum Schutz bestimmter Seiten oder Ressourcen verwenden. Für Entwickler, die die Sicherheit ihrer Anwendungen stärken möchten, ist Middleware ein hervorragendes Werkzeug, um dieses Ziel zu erreichen.
Das obige ist der detaillierte Inhalt vonSo schreiben Sie Middleware in Laravel, um den Middleware-Sprung zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!