Laravel 5 Admin Middleware (is_admin user check)

Would you like to have middleware that makes sure that only users with an is_admin = 1 status will be able to see the admin section? Then you can use the following code:


is_admin == 1)
            return $next($request);

        return redirect()->guest('/');

Make sure you’ll register the middleware as a route in app/Http/Kernel.php

protected $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

Finally assign this middleware in the routes.php next to the auth middleware, since the admin middleware is an extension to the auth middleware.


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

If you’ve suggestions to make this coding more efficient, you’re always welcome to drop a comment below.

12 thoughts on “Laravel 5 Admin Middleware (is_admin user check)”

  1. Very useful. I would like to add one more important step.

    Logged in as Admin
    You are logged in!

    Add this in your home.blade.php to check whether user is admin or guest user.

  2. I am using laravel 5.3.
    I’ve added adminMiddleware in app/Http/Kernel.php.

    protected $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,
    But it doesn’t work.
    Error message is
    Class ‘App\Http\Middleware\Auth’ not found
    What is this?

  3. protected $middlewareGroups = [
    ‘web’ => [
    // \Illuminate\Session\Middleware\AuthenticateSession::class,

    \Project1\Http\Middleware\AdminMiddleware::class, // HERE YOU NEED TO ADD

    ‘api’ => [

  4. Very useful. I would like make different login view for admin and user with help of Admin Middleware. when admin login in backend then he also automatically login in frontend but when frontend user try to access backend then its not able to access admin. can any one help me on this issue?

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top