How to make laravel custom middleware | what is laravel middleware

In this tutorial we will discuss laravel custom middleware. Middleware example in laravel 9, laravel 8, laravel 7. what is middleware in laravel.

what is middleware in laravel

middleware is work like a bridge between request and response. Middleware is verify that user is authenticate or not for a particular request if user not authenticate it send error or redirect to other page.

Steps to create laravel middleware

Step 1 create AdminAccess mddleware

we create a middleware which is only pass request if its send by admin-login user.

php artisan make:middleware AdminAccess

After running above command a middleware create on this directory app/Http/Middleware/AdminAccess.php

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class AdminAccess{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next) {
      if (Auth::check() && Auth::user()->type == 'admin')  {
        return $next($request);
      } else{
        Auth::logout();
        return redirect()->route('admin.login');
      }
    }
}

This middleware check requested user must have login and its type became admin

Step 2 Register middleware in kernal.php

after created laravel custom middleware we define it in kernal.php

app/Http/kernal.php
<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel{
    ....

    protected $routeMiddleware = [
        'adminAccess' => \App\Http\Middleware\AdminAccess::class,
    ];
}
Step 3 add route

Now we make a route group and use middleware here.

Route::middleware('adminAccess')->group(function(){
    Route::get('userlisting', [UserController::class, 'index'])->name('user.index');

});
    Route::get('login', [UserController::class, 'login'])->name('admin.login');
Step 4 make a controller
app/Http/Controllers/UserController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index(){
      dd('user listing page');
    }

    public function login(){
      dd('admin login page');
    }
}
php laravel developer anmol sharma

Anmol Sharma

I am a software engineer and have experience in web development technologies like php, Laravel, Codeigniter, javascript, jquery, bootstrap and I like to share my deep knowledge by these blogs.

Random tutorial links