Middleware to jeden z najważniejszych mechanizmów w Laravel oraz nowoczesnych frameworkach backendowych.
Pozwala kontrolować request zanim dotrze do aplikacji lub kontrolera.
Najprościej mówiąc:
Middleware działa jak filtr lub warstwa pośrednia pomiędzy requestem użytkownika a logiką aplikacji.
Middleware może:
przepuścić request dalej,
zmodyfikować request,
zatrzymać request,
zwrócić odpowiedź wcześniej.
Jak działa middleware?
Schemat wygląda mniej więcej tak:
Każde żądanie HTTP może przechodzić przez wiele middleware jednocześnie.
Przykład middleware w Laravel
Najczęściej spotykany przykład to autoryzacja użytkownika:
Co tutaj się dzieje?
1. Request trafia do middleware
Laravel przechwytuje request zanim uruchomi kontroler.
2. Middleware sprawdza warunek
sprawdza czy użytkownik jest zalogowany.
3. Jeśli użytkownik NIE jest zalogowany
Middleware zatrzymuje request:
i użytkownik trafia na stronę logowania.
4. Jeśli użytkownik jest zalogowany
Request przechodzi dalej:
Do czego używa się middleware?
Middleware jest używany praktycznie w każdej większej aplikacji Laravel.
1. Authentication (auth)
Najpopularniejsze zastosowanie.
Sprawdzanie:
czy użytkownik jest zalogowany,
czy token JWT jest poprawny,
czy sesja istnieje.
Przykład:
2. Authorization / Role permissions
Sprawdzanie:
admin,
moderator,
premium user,
dostęp do zasobów.
Przykład:
3. Rate Limiting
Ograniczanie liczby requestów.
Bardzo ważne dla:
API,
logowania,
ochrony przed brute-force,
ochrony przed spamem.
Laravel posiada wbudowany rate limiter.
4. Logowanie requestów
Middleware świetnie nadaje się do:
logowania requestów API,
analizy błędów,
monitoringu,
debugowania produkcji.
Przykład:
5. Ustawianie nagłówków HTTP
Np:
CORS,
cache headers,
security headers.
6. API Security
Middleware często obsługuje:
API tokens,
JWT,
OAuth,
CSRF,
firewall logic.
7. Localization
Zmiana języka aplikacji na podstawie:
nagłówka,
kraju,
ustawień użytkownika.
8. Maintenance Mode
Middleware może blokować dostęp podczas maintenance.
Middleware globalny vs route middleware
Laravel pozwala używać middleware na różnych poziomach.
Global Middleware
Działa dla każdego requestu.
Plik:
Przykład:
CORS
sessions
trimming input
Route Middleware
Działa tylko dla wybranych endpointów.
Przykład:
Middleware Groups
Laravel pozwala grupować middleware.
Np grupa:
lub:
Jak stworzyć własny middleware?
Laravel posiada generator Artisan:
Plik pojawi się w:
Rejestracja middleware
Middleware dodaje się w:
Przykład własnego middleware
Najczęstszy błąd początkujących
Wrzucanie logiki biznesowej do middleware
Middleware NIE powinien:
tworzyć zamówień,
wykonywać logiki domenowej,
liczyć biznesowych danych,
wykonywać ciężkich operacji.
Middleware powinien:
filtrować,
walidować,
kontrolować przepływ requestu.
Zła praktyka
Dobra praktyka
Middleware:
sprawdza dostęp,
waliduje request,
kontroluje bezpieczeństwo.
A logika biznesowa trafia do:
Service classes,
Controllers,
Domain layer,
Jobs,
Actions.
Middleware a wydajność
Każdy request przechodzi przez middleware.
Dlatego middleware powinny być:
lekkie,
szybkie,
dobrze zoptymalizowane.
Źle napisane middleware może spowolnić całą aplikację.
Middleware w nowoczesnych aplikacjach
Middleware jest podstawą:
Laravel API,
systemów SaaS,
aplikacji mobilnych,
mikroserwisów,
systemów CRM,
aplikacji enterprise.
Middleware w API-first Architecture
W architekturze API-first middleware często odpowiada za:
autoryzację tokenów,
rate limiting,
versioning API,
monitoring,
logowanie requestów,
security layers.
Podsumowanie
Middleware w Laravel to warstwa pośrednia kontrolująca requesty HTTP zanim trafią do logiki aplikacji.
To jeden z najważniejszych mechanizmów backendowych pozwalających budować:
bezpieczne aplikacje,
skalowalne API,
kontrolę dostępu,
monitoring,
zabezpieczenia systemowe.
Dobrze zaprojektowane middleware:
upraszcza architekturę,
poprawia bezpieczeństwo,
zwiększa czytelność aplikacji,
pozwala lepiej kontrolować przepływ requestów.
Najważniejsze jednak jest zachowanie odpowiedzialności middleware — powinno ono filtrować i kontrolować request, a nie przejmować logikę biznesową aplikacji.
Pozwala kontrolować request zanim dotrze do aplikacji lub kontrolera.
Najprościej mówiąc:
Middleware działa jak filtr lub warstwa pośrednia pomiędzy requestem użytkownika a logiką aplikacji.
Middleware może:
przepuścić request dalej,
zmodyfikować request,
zatrzymać request,
zwrócić odpowiedź wcześniej.
Jak działa middleware?
Schemat wygląda mniej więcej tak:
User Request
↓
Middleware
↓
Controller / Application Logic
↓
ResponseKażde żądanie HTTP może przechodzić przez wiele middleware jednocześnie.
Przykład middleware w Laravel
Najczęściej spotykany przykład to autoryzacja użytkownika:
public function handle($request, Closure $next)
{
if (!auth()->check()) {
return redirect('/login');
}
return $next($request);
}Co tutaj się dzieje?
1. Request trafia do middleware
Laravel przechwytuje request zanim uruchomi kontroler.
2. Middleware sprawdza warunek
auth()->check()sprawdza czy użytkownik jest zalogowany.
3. Jeśli użytkownik NIE jest zalogowany
Middleware zatrzymuje request:
return redirect('/login');i użytkownik trafia na stronę logowania.
4. Jeśli użytkownik jest zalogowany
Request przechodzi dalej:
return $next($request);$next() przekazuje request do kolejnego middleware lub kontrolera.Do czego używa się middleware?
Middleware jest używany praktycznie w każdej większej aplikacji Laravel.
1. Authentication (auth)
Najpopularniejsze zastosowanie.
Sprawdzanie:
czy użytkownik jest zalogowany,
czy token JWT jest poprawny,
czy sesja istnieje.
Przykład:
Route::middleware('auth')->group(function () {
Route::get('/dashboard', ...);
});2. Authorization / Role permissions
Sprawdzanie:
admin,
moderator,
premium user,
dostęp do zasobów.
Przykład:
if (!auth()->user()->is_admin) {
abort(403);
}3. Rate Limiting
Ograniczanie liczby requestów.
Bardzo ważne dla:
API,
logowania,
ochrony przed brute-force,
ochrony przed spamem.
Laravel posiada wbudowany rate limiter.
4. Logowanie requestów
Middleware świetnie nadaje się do:
logowania requestów API,
analizy błędów,
monitoringu,
debugowania produkcji.
Przykład:
Log::info($request->fullUrl());5. Ustawianie nagłówków HTTP
Np:
CORS,
cache headers,
security headers.
6. API Security
Middleware często obsługuje:
API tokens,
JWT,
OAuth,
CSRF,
firewall logic.
7. Localization
Zmiana języka aplikacji na podstawie:
nagłówka,
kraju,
ustawień użytkownika.
8. Maintenance Mode
Middleware może blokować dostęp podczas maintenance.
Middleware globalny vs route middleware
Laravel pozwala używać middleware na różnych poziomach.
Global Middleware
Działa dla każdego requestu.
Plik:
app/Http/Kernel.phpPrzykład:
CORS
sessions
trimming input
Route Middleware
Działa tylko dla wybranych endpointów.
Przykład:
Route::middleware('auth')->get('/dashboard', function () {
//
});Middleware Groups
Laravel pozwala grupować middleware.
Np grupa:
weblub:
apiJak stworzyć własny middleware?
Laravel posiada generator Artisan:
php artisan make:middleware CheckAdminPlik pojawi się w:
app/Http/MiddlewareRejestracja middleware
Middleware dodaje się w:
app/Http/Kernel.phpPrzykład własnego middleware
public function handle($request, Closure $next)
{
if (!auth()->user()->is_admin) {
abort(403);
}
return $next($request);
}Najczęstszy błąd początkujących
Wrzucanie logiki biznesowej do middleware
Middleware NIE powinien:
tworzyć zamówień,
wykonywać logiki domenowej,
liczyć biznesowych danych,
wykonywać ciężkich operacji.
Middleware powinien:
filtrować,
walidować,
kontrolować przepływ requestu.
Zła praktyka
public function handle($request, Closure $next)
{
Order::create([...]);
return $next($request);
}Dobra praktyka
Middleware:
sprawdza dostęp,
waliduje request,
kontroluje bezpieczeństwo.
A logika biznesowa trafia do:
Service classes,
Controllers,
Domain layer,
Jobs,
Actions.
Middleware a wydajność
Każdy request przechodzi przez middleware.
Dlatego middleware powinny być:
lekkie,
szybkie,
dobrze zoptymalizowane.
Źle napisane middleware może spowolnić całą aplikację.
Middleware w nowoczesnych aplikacjach
Middleware jest podstawą:
Laravel API,
systemów SaaS,
aplikacji mobilnych,
mikroserwisów,
systemów CRM,
aplikacji enterprise.
Middleware w API-first Architecture
W architekturze API-first middleware często odpowiada za:
autoryzację tokenów,
rate limiting,
versioning API,
monitoring,
logowanie requestów,
security layers.
Podsumowanie
Middleware w Laravel to warstwa pośrednia kontrolująca requesty HTTP zanim trafią do logiki aplikacji.
To jeden z najważniejszych mechanizmów backendowych pozwalających budować:
bezpieczne aplikacje,
skalowalne API,
kontrolę dostępu,
monitoring,
zabezpieczenia systemowe.
Dobrze zaprojektowane middleware:
upraszcza architekturę,
poprawia bezpieczeństwo,
zwiększa czytelność aplikacji,
pozwala lepiej kontrolować przepływ requestów.
Najważniejsze jednak jest zachowanie odpowiedzialności middleware — powinno ono filtrować i kontrolować request, a nie przejmować logikę biznesową aplikacji.