"Что такое Middleware в Laravel и как их использовать"
Middleware в Laravel — один из важнейших механизмов обработки HTTP-запросов.
С помощью middleware можно:
- проверять авторизацию;
- фильтровать запросы;
- ограничивать доступ;
- логировать действия;
- изменять request и response.
В этой статье подробно разберём Laravel middleware и лучшие практики их использования.
Что такое Middleware
Middleware — это промежуточный слой между HTTP request и приложением.
Laravel middleware работает по принципу pipeline:
Request → Middleware → Controller → Response
Где находятся Middleware
Все middleware расположены в:
app/Http/Middleware
Создание Middleware
Команда:
php artisan make:middleware CheckAdmin
Laravel создаст:
app/Http/Middleware/CheckAdmin.php
Пример Middleware
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CheckAdmin
{
public function handle(Request $request, Closure $next)
{
if (!auth()->check()) {
return redirect('/login');
}
return $next($request);
}
}
Как работает handle()
Метод handle() принимает:
- Request;
- Closure
$next.
Передача дальше по pipeline:
return $next($request);
Регистрация Middleware
Глобальные Middleware
Регистрируются в:
bootstrap/app.php
Route Middleware
Пример:
Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', function () {
//
});
});
Middleware для группы маршрутов
Route::middleware(['auth', 'verified'])->group(function () {
//
});
Laravel Auth Middleware
Встроенный middleware:
auth
Используется для защиты маршрутов:
Route::middleware('auth')->group(function () {
//
});
CSRF Middleware
Laravel автоматически защищает POST-запросы через CSRF middleware.
Blade:
@csrf
Throttle Middleware
Ограничение количества запросов.
Route::middleware('throttle:60,1')->group(function () {
//
});
Middleware и API
Для API middleware особенно важны:
- auth:sanctum;
- throttle;
- CORS;
- rate limiting.
Передача параметров в Middleware
Пример:
Route::middleware('role:admin')->group(function () {
//
});
Middleware terminate()
Laravel поддерживает middleware после ответа пользователю.
Пример:
public function terminate($request, $response)
{
//
}
Полезно для:
- логирования;
- аналитики;
- очередей.
Лучшие практики Middleware
Рекомендуется:
- не перегружать middleware логикой;
- использовать middleware для HTTP-фильтрации;
- не выполнять тяжёлые SQL-запросы;
- разделять API и web middleware.
Частые Middleware в Laravel
Самые популярные:
- auth
- guest
- throttle
- verified
- sanctum
- bindings
Итоги
Laravel middleware — фундаментальная часть HTTP pipeline.
Они помогают:
- защищать маршруты;
- фильтровать запросы;
- контролировать доступ;
- организовывать безопасность приложения.
Понимание middleware обязательно для разработки сложных Laravel-приложений и API.