Middleware d'administration Laravel 5 (vérification de l'utilisateur is_admin)

Souhaitez-vous disposer d'un middleware qui garantit que seuls les utilisateurs ayant un statut is_admin = 1 pourront voir la section admin ? Vous pouvez alors utiliser le code suivant :

application/Http/Middleware/AdminMiddleware.php

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

Assurez-vous d'enregistrer le middleware en tant que route dans app/Http/Kernel.php

protégé $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 ];

Enfin, attribuez ce middleware dans le routes.php à côté du middleware d'authentification, puisque le middleware d'administration est une extension du middleware d'authentification.

Application/Http/routes.php

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

Si vous avez des suggestions pour rendre ce codage plus efficace, n'hésitez pas à laisser un commentaire ci-dessous.

Réflexions de 12 sur « Laravel 5 Admin Middleware (is_admin user check) »

  1. Très utile. J'aimerais ajouter une étape supplémentaire importante.

    @if(\Auth::user()->admin==1)
    Connecté en tant qu'administrateur
    @autre
    Vous êtes connecté!
    @endif

    Ajoutez ceci dans votre home.blade.php pour vérifier si l'utilisateur est un administrateur ou un utilisateur invité.

  2. J'utilise laravel 5.3.
    J'ai ajouté adminMiddleware dans app/Http/Kernel.php.

    protégé $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'liaisons' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'peut' => \Illuminate\Auth\Middleware\Authorize::class,
    'invité' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'admin' => \App\Http\Middleware\AdminMiddleware::class,
    ];
    Mais ça ne marche pas.
    Le message d'erreur est
    Classe « App\Http\Middleware\Auth » non trouvée
    Qu'est-ce que c'est?

  3. protégé $middlewareGroups = [
    'web' => [
    \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, // ICI VOUS DEVEZ AJOUTER
    ],

    'api' => [
    'accélérateur:60,1',
    'reliures',
    ],
    ];

  4. Très utile. Je voudrais créer une vue de connexion différente pour l'administrateur et l'utilisateur avec l'aide d'Admin Middleware. Lorsque l'administrateur se connecte au backend, il se connecte également automatiquement au frontend, mais lorsque l'utilisateur du frontend essaie d'accéder au backend, il ne peut pas accéder à l'administrateur. Quelqu'un peut-il m'aider sur ce problème ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

fr_FRFrançais
Défiler vers le haut