Laravel 5 Admin Middleware (is_admin-Benutzerprüfung)

Möchten Sie eine Middleware, die sicherstellt, dass nur Benutzer mit dem Status is_admin = 1 den Admin-Bereich sehen können? Dann können Sie den folgenden Code verwenden:

app/Http/Middleware/AdminMiddleware.php

is_admin == 1) { return $next($request); } return redirect()->guest('/'); } }

Stellen Sie sicher, dass Sie die Middleware als Route in app/Http/Kernel.php registrieren.

geschützt $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'admin' => \App\Http\Middleware\AdminMiddleware::class ];

Ordnen Sie diese Middleware abschließend in der routes.php neben der Auth-Middleware zu, da die Admin-Middleware eine Erweiterung der Auth-Middleware ist.

App/Http/routes.php

Route::group(['Präfix' => 'Verwaltung', 'Middleware' => ['Authentifizierung', 'Administrator']], Funktion() { Route::get('/', 'Admin\HomeController@index'); }

Wenn Sie Vorschläge haben, um diese Codierung effizienter zu gestalten, können Sie unten jederzeit einen Kommentar hinterlassen.

Hallo Welt

12-Gedanken zu „Laravel 5 Admin Middleware (is_admin user check)“

  1. Ich wollte nur Danke sagen, dass Sie diese einfache Lösung für diese Herausforderung gepostet haben :).

    Habt ein schönes Wochenende!

  2. Sehr nützlich. Ich möchte noch einen wichtigen Schritt hinzufügen.

    @wenn(\Auth::user()->admin==1)
    Als Administrator angemeldet
    @anders
    Du bist angemeldet!
    @endif

    Fügen Sie dies in Ihre home.blade.php ein, um zu überprüfen, ob der Benutzer ein Administrator oder Gastbenutzer ist.

  3. Ich verwende Laravel 5.3.
    Ich habe adminMiddleware in app/Http/Kernel.php hinzugefügt.

    geschützt $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::Klasse,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'Bindungen' => \Illuminate\Routing\Middleware\SubstituteBindings::Klasse,
    'kann' => \Illuminate\Auth\Middleware\Authorize::class,
    'Gast' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'Throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::Klasse,
    'admin' => \App\Http\Middleware\AdminMiddleware::Klasse,
    ];
    Aber es funktioniert nicht.
    Fehlermeldung ist
    Klasse 'App\Http\Middleware\Auth' nicht gefunden
    Was ist das?

  4. geschützte $middlewareGroups = [
    'Netz' => [
    \Projekt1\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::Klasse,
    \Illuminate\Session\Middleware\StartSession::Klasse,
    // \Illuminate\Session\Middleware\AuthenticateSession::Klasse,
    \Illuminate\View\Middleware\ShareErrorsFromSession::Klasse,
    \Projekt1\Http\Middleware\VerifyCsrfToken::class,
    \Illuminate\Routing\Middleware\SubstituteBindings::Klasse,

    \Project1\Http\Middleware\AdminMiddleware::class, // HIER MÜSSEN SIE HINZUFÜGEN
    ],

    'API' => [
    'Drossel:60,1',
    'Bindungen',
    ],
    ];

  5. Sehr nützlich. Ich möchte mithilfe der Admin-Middleware unterschiedliche Anmeldeansichten für Administrator und Benutzer erstellen. Wenn sich der Administrator im Backend anmeldet, meldet er sich auch automatisch im Frontend an, aber wenn der Frontend-Benutzer versucht, auf das Backend zuzugreifen, kann er nicht auf den Administrator zugreifen. Kann mir jemand bei diesem Problem helfen?

Einen Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEDeutsch
Nach oben blättern