Return to Archive
Web development

Understanding Laravel Middleware

Laravel Middlewares are explained in detain in this artical, including its types (Global, Route, Group, and Parameterized middleware).Furthure more, it is also discussed about its creation, how to register it, and finially how to apply it.

Understanding Laravel Middleware

What is Middleware in Laravel?

In Laravel, middleware acts as a bridge between a request and a response.It filter the HTTP requests before entering your application.

You can imagine middleware as a security guard.

Before a request reaches your controller, middleware checks condition like:

  • Is the User Logged in (Authenticated)?
  • Does the user have admin access?
  • From where the request is coming (from a specific IP)?

Laravel provides built-in middleware like authentication and CSRF, and it also allows you to create custom middleware.

Artisan Command for creating Middleware:

php artisan make:middleware MiddlewareName

Example: php artisan make:middleware AgeCheck

Types of Middleware:

Laravel middlewares can be categorized into:

  1. Global Middleware
  2. Route Middleware (single middleware)
  3. Groups Middleware
  4. Parameterized Middleware

 1. Global Middleware:

Global middleware runs on every request.

How to Register Global Middleware (Laravel 11+)

  1. Create a middleware using the artisan command.
  2. open 
    bootstrap/app.php
  3. Add indesite withMiddleware():
    /**
    * import path important
    * midlewares are stored in App\Http\Middleware
    */
    use App\Http\Middleware\AgeCheck;
    
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->append(AgeCheck::class);
    });
    
    

When to use Global Middleware?

  • Logging requests
  • Maintenance mode checks
  • security headers
  • Application-wide validation

 2. Route Middleware(Single):

Route middleware is applied to specific routes.

Step # 01  ( Create Middleware )

php artisan make:middleware CheckAge

This creates:

app/Http/Middleware/CheckAge.php

Step # 02  ( Write Logic )

 

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class CheckAge
{
    public function handle(Request $request, Closure $next)
    {
        if ($request->age < 18) {
            return response("You are not allowed.", 403);
        }

        return $next($request);
    }
}

Step # 03  ( Register Alias )

go to bootstrap/app.php 

->withMiddleware(function (Middleware $middleware) {

    $middleware->alias([
        'checkage' => \App\Http\Middleware\CheckAge::class,
    ]);

})

Step # 04  ( Apply to Route )

In routes/web.php

use Illuminate\Support\Facades\Route;

Route::get('/restricted', function () {
    return "Access Granted";
})->middleware('checkage');

3. Group Middleware

4. Parameterized Middleware

Technical Discourse

No technical insights shared yet. Be the first to initiate the protocol.