در لاراول، میان‌افزار (Middleware) یک لایه واسط است که بین درخواست HTTP و پاسخ آن قرار می‌گیرد و به شما این امکان را می‌دهد که منطق‌هایی مانند احراز هویت، محدودیت دسترسی، مدیریت نشست‌ها، و اعتبارسنجی CSRF را به راحتی پیاده‌سازی کنید.

انواع میان‌افزارها در لاراول

  1. میان‌افزار سراسری (Global Middleware)
    این میان‌افزار برای هر درخواست HTTP در برنامه اجرا می‌شود. برای اضافه کردن آن، باید کلاس میان‌افزار را در آرایه $middleware در فایل app/Http/Kernel.php ثبت کنید.

  2. میان‌افزار مسیر (Route Middleware)
    این میان‌افزارها به مسیرهای خاصی اختصاص داده می‌شوند. برای استفاده از آن‌ها، ابتدا باید در آرایه $routeMiddleware در Kernel.php تعریف شوند و سپس با استفاده از متد middleware به مسیرها اختصاص یابند.

  3. گروه‌های میان‌افزار (Middleware Groups)
    لاراول به‌صورت پیش‌فرض دو گروه میان‌افزار web و api را ارائه می‌دهد که می‌توانید آن‌ها را در آرایه $middlewareGroups در Kernel.php مشاهده و مدیریت کنید.

  4. اولویت‌بندی میان‌افزارها (Middleware Priority)

  5. در مواقعی که ترتیب اجرای میان‌افزارها اهمیت دارد، می‌توانید با استفاده از آرایه $middlewarePriority در Kernel.php ترتیب اجرای آن‌ها را مشخص کنید.

    مثال

    برای ایجاد یک میان‌افزار سفارشی، از دستور Artisan زیر استفاده کنید:

php artisan make:middleware CheckAge

سپس در متد handle این کلاس، منطق مورد نظر را پیاده‌سازی کنید:

public function handle($request, Closure $next)
{
if (auth()->user()->age < 18) {
return redirect('home');
}

return $next($request);
}

برای استفاده از این میان‌افزار، آن را در آرایه $routeMiddleware در Kernel.php ثبت کرده و سپس به مسیرها اختصاص دهید:

Route::get('/profile', function () {
// ...
})->middleware('checkAge');