Middleware di amministrazione Laravel 5 (controllo utente is_admin)

Vorresti avere un middleware che assicuri che solo gli utenti con stato is_admin = 1 possano vedere la sezione admin? Allora puoi usare il seguente codice:

app/Http/Middleware/AdminMiddleware.php

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

Assicurati di registrare il middleware come percorso in app/Http/Kernel.php

protetto $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 ];

Infine, assegnare questo middleware nel file routes.php accanto al middleware di autenticazione, poiché il middleware di amministrazione è un'estensione del middleware di autenticazione.

App/Http/routes.php

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

Se avete suggerimenti per rendere questa codifica più efficiente, siete sempre benvenuti a lasciare un commento qui sotto.

12 commenti su “Laravel 5 Admin Middleware (is_admin user check)”

  1. Molto utile. Vorrei aggiungere un altro passaggio importante.

    @if(\Auth::user()->admin==1)
    Accedi come amministratore
    @altro
    Hai effettuato l'accesso!
    @endif

    Aggiungilo nel tuo file home.blade.php per verificare se l'utente è amministratore o ospite.

  2. Sto utilizzando Laravel 5.3.
    Ho aggiunto adminMiddleware in app/Http/Kernel.php.

    protetto $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'legami' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'può' => \Illuminate\Auth\Middleware\Authorize::class,
    'ospite' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'acceleratore' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'admin' => \App\Http\Middleware\AdminMiddleware::class,
    ];
    Ma non funziona.
    Il messaggio di errore è
    Classe 'App\Http\Middleware\Auth' non trovata
    Cos'è questo?

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

    \Project1\Http\Middleware\AdminMiddleware::class, // QUI DEVI AGGIUNGERE
    ],

    'api' => [
    'acceleratore:60,1',
    'legami',
    ],
    ];

  4. Molto utile. Vorrei creare una vista di accesso diversa per admin e user con l'aiuto di Admin Middleware. Quando l'admin accede al backend, allora accede automaticamente anche al frontend, ma quando l'utente del frontend prova ad accedere al backend, allora non riesce ad accedere all'admin. Qualcuno può aiutarmi con questo problema?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItaliano
Scorri verso l'alto