Verwendung von Middleware für Inhaltsbeschränkungen basierend auf der Benutzerrolle in Laravel

Hallo an alle, willkommen zurück auf justlaravel.com. Hier in diesem Beitrag zeige ich Ihnen, wie Sie Middleware in Ihren Laravel-Anwendungen verwenden, um den Inhalt oder einige bestimmte Seiten basierend auf der Benutzerrolle einzuschränken. Dies ist sehr praktisch, wenn Sie eine einfache kostenpflichtige Mitgliederseite haben, auf der Benutzer, die für ein Abonnement zahlen, Seiten sehen können, die für andere Benutzer nicht sichtbar sind. Oder wenn Sie Administrator-, Benutzer-, Superadministrator-Rollen haben, dann funktioniert auch diese Middleware in Laravel gut.

Die Zugriffskontrolle ist ein wichtiger Aspekt jeder Anwendung, die sich mit benutzerspezifischen Inhalten befasst. Es bietet dem Benutzer die Möglichkeit, auf bestimmte Anwendungskomponenten zuzugreifen.

Die offiziellen Dokumente dazu von laravel.com finden Sie hier.

Also lasst uns anfangen.

Verwendung von Middleware in Laravel - justlaravel.com

Benutzerrollen einrichten

Zuerst erstelle ich 3 Benutzerrollen (admin, super admin, member) zum Testen unserer Middleware-Funktionalität. Ich werde sie mit Laravel Authentication Scaffolding erstellen. Führen Sie also den folgenden Befehl aus:

PHP-Handwerker machen: auth

Nachdem wir uns angemeldet und registriert haben, ändere ich das Registrierungsskript, um ein neues Feld "Benutzertyp" hinzuzufügen.

Wenn du eine benutzerdefinierte Authentifizierung haben willst - Sigin / Signup stattdessen auf diesem Laravel-Gerüst, ich habe einen anderen Beitrag gemacht, den du hier ansehen kannst.

Fügen Sie zunächst der Benutzertabelle ein neues Feld hinzu und fügen Sie diese Zeile hinzu. $ Table- & gt; string ('type'); Erstellen Sie in der Benutzertabelle ein Schema.

Suchen Sie daher die Datei ### _ create_users_table.php im Verzeichnis database \ migrations.

öffentliche Funktion auf ()
{
Schema :: create (‘users’, Funktion (Blueprint $ table) {
$ table-> increments ('id');
$ table-> string (‘name’);
$ table-> string ('email') -> unique ();
$ table-> string ("Passwort");
$ table-> string ('type');
$ table-> rememberToken ();
$ table-> timestamps ();
});
}

Migrieren Sie nun die Tabellen, und führen Sie den folgenden Befehl aus:

PHP-Handwerker migrieren

Navigieren Sie zu der Registrierungs-Blade-Datei unter \ resources \ views \ auth \ register.blade.php und bestätigen Sie das Passwortfeld und fügen Sie ein neues Auswahlfeld wie folgt hinzu.