Adding a Global Middleware: 3 Ways

If you want to define a global Middleware for all API routes, for example, there are three "levels" where you can set it:

Option 1. In the routes file.

// routes/api.php
Route::middleware(YourMiddleware::class)->group(function() {
// .., all API routes
})

Option 2. In the routes service provider.

// app/Providers/RouteServiceProvider.php
public function boot()
{
$this->configureRateLimiting();
 
$this->routes(function () {
Route::middleware(['api', YourMiddleware::class])
// ...

Option 3. In the global middleware kernel file.

// app/Http/Kernel.php: add to the 'api' group
protected $middlewareGroups = [
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
YourMiddleware::class,
],
];

Like our articles?

Become a Premium Member for $129/year or $29/month
What else you will get:
  • 59 courses (1057 lessons, total 42 h 44 min)
  • 79 long-form tutorials (one new every week)
  • access to project repositories
  • access to private Discord

Recent Premium Tutorials