Laravel 5 Admin Middleware (is_admin användarkontroll)

Vill du ha en mellanprogramvara som ser till att endast användare med statusen is_admin = 1 kommer att kunna se adminsektionen? Då kan du använda följande kod:

app/Http/Middleware/AdminMiddleware.php

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

Se till att du registrerar mellanvaran som en rutt i app/Http/Kernel.php

protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'guest' => \App\Http\Authentic:Mindware' => \App\Http\Middleware\AdminMiddleware::class ];

Tilldela slutligen denna middleware i routes.php bredvid auth-mellanvaran, eftersom admin-mellanvaran är en förlängning av auth-mellanvaran.

App/Http/routes.php

Route::group(['prefix' => 'administration', 'middleware' => ['auth', 'admin']], function() { Route::get('/', 'Admin\HomeController@index'); }

Om du har förslag för att göra denna kodning mer effektiv är du alltid välkommen att lämna en kommentar nedan.

Senast uppdaterad 11 september 2015

12 reaktioner på ”Laravel 5 Admin Middleware (is_admin user check)”

  1. Mycket användbart. Jag skulle vilja lägga till ytterligare ett viktigt steg.

    @if(\Auth::user()->admin==1)
    Inloggad som admin
    @annan
    Du är inloggad!
    @endif

    Lägg till detta i din home.blade.php för att kontrollera om användaren är admin eller gästanvändare.

  2. Jag använder laravel 5.3.
    Jag har lagt till adminMiddleware i app/Http/Kernel.php.

    skyddad $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'admin' => \App\Http\Middleware\AdminMiddleware::class,
    ];
    Men det går inte.
    Felmeddelandet är
    Klassen 'App\Http\Middleware\Auth' hittades inte
    Vad är det här?

  3. skyddade $middlewareGroups = [
    'webb' => [
    \Project1\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    // \Illuminate\Session\Middleware\AuthenticateSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \Project1\Http\Middleware\VerifyCsrfToken::class,
    \Illuminate\Routing\Middleware\SubstituteBindings::class,

    \Project1\Http\Middleware\AdminMiddleware::class, // HÄR MÅSTE DU LÄGA TILL
    ],

    'api' => [
    'throttle:60,1',
    'bindningar',
    ],
    ];

  4. Mycket användbart. Jag skulle vilja göra olika inloggningsvyer för admin och användare med hjälp av Admin Middleware. När administratören loggar in på backend loggar han också in automatiskt i frontend, men när frontend-användare försöker få åtkomst till backend kan han inte få åtkomst till admin. kan någon hjälpa mig i denna fråga?

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESvenska
Bläddra till toppen