Si të personalizoni Laravel 11 Middleware

softueri i mesëm laravel
Laravel 11 përmban një program ndërmjetës të thjeshtuar dhe një konfigurim shumë të efektshëm.
Përshtatjet e programit të mesëm mund të bëhen direkt në skedar bootstrap/app.php
.
Në këtë artikull do t'ju tregoj disa shembuj të konfigurimit të ndërmjetëm Laravel, konfigurimit bazë dhe të avancuar.
- Si të personalizoni softuerin e mesëm laravel
- Si të ridrejtoni përdoruesit dhe të ftuarit në një adresë të përcaktuar
- Si të ridrejtoni mysafirët në një adresë specifike
- Si të specifikoni se cilat cookie të përjashtohen nga enkriptimi
- Duke përjashtuar rrugët nga mbrojtja CSRF
- Përjashtimi i rrugëve nga verifikimi i nënshkrimit të URL-së
- Parandaloni konvertimin e vargjeve boshe në null
- Si të parandaloni shkurtimin e vargut në kërkesa
- Përshtatje të avancuara të softuerit të mesëm
3 minuti
Si të personalizoni softuerin e mesëm laravel
Si të ridrejtoni përdoruesit dhe të ftuarit në një adresë të përcaktuar
Në rast se duam të ridrejtojmë përdoruesit e vërtetuar dhe përdoruesit e ftuar në një adresë specifike, ne mund të përdorim metodën redirectTo()
. Në veçanti, cilësimi duhet të bëhet në skedar bootstrap/app.php
, le të shohim një shembull ku të ftuarit ridrejtohen gjithmonë në faqen e identifikimit, ndërsa përdoruesit që njohim, d.m.th. përdoruesit e vërtetuar, ridrejtohen në panelin e punës:
->withMiddleware(function (Middleware $middleware) {
$middleware->redirectTo(
guests: '/admin/login',
users: '/dashboard'
);
})
Më parë, ky konfigurim u trajtua Authenticated.php
e RedirectIfAuthenticated.php
Si të ridrejtoni mysafirët në një adresë specifike
Për të vendosur një ridrejtim specifik për mysafirët, mund të përdorni metodën redirectGuestsTo()
. Në veçanti, cilësimi duhet të bëhet në skedar bootstrap/app.php
, le të shohim një shembull ku të ftuarit ridrejtohen gjithmonë në faqen e identifikimit:
->withMiddleware(function (Middleware $middleware) {
$middleware->redirectGuestsTo('/admin/login');
})
Në versionet e mëparshme, ky ridrejtim u trajtua brenda skedarit të softuerit të mesëm. Authenticated.php
.
Si të specifikoni se cilat cookie të përjashtohen nga enkriptimi
Për të përjashtuar cookies nga enkriptimi, middleware di laravel 11 na ofron metodën encryptCookies()
, ku parametri na lejon të specifikojmë cookies. Le të shohim një shembull:
php->withMiddleware(function (Middleware $middleware) {
$middleware->encryptCookies(except: [
'foo',
'bar',
]);
})
Në versionet e mëparshme kjo veçori ishte përfshirë EncryptCookies.php
.
Duke përjashtuar rrugët nga mbrojtja CSRF
Nëse keni nevojë të përjashtoni disa rrugë nga mbrojtja CSRF, Laravel Middleware na ofron metodën validateCsrfTokens()
, i cili kur përdoret siç duhet na lejon të përjashtojmë rrugët e specifikuara.
Në kodin e mëposhtëm, shohim një shembull ku përjashtojmë rrugët /foo/*
e /bar
. Kodi duhet të futet në skedar bootstrap/app.php
->withMiddleware(function (Middleware $middleware) {
$middleware->validateCsrfTokens(except: [
'/foo/*',
'/bar',
]);
})
Në versionet e mëparshme të Laravel, ky cilësim u bë në skedar VerifyCsrfToken.php
.
Përjashtimi i route
nga URL Signature Validation
Për të përjashtuar një rrugë (ose route
) nga vërtetimi i nënshkrimit të URL-së, softueri i mesëm laravel na ofron metodën validateSignatures()
, le të shohim një shembull:
->withMiddleware(function (Middleware $middleware) {
$middleware->validateSignatures(except: [
'/api/*',
]);
})
Në versionet e mëparshme të Laravel, konfigurimi i Middleware trajtohej në skedar ValidateSignature.php
.
Parandaloni konvertimin e vargjeve boshe në null
Për të kontrolluar sjelljen e konvertimit të vargjeve boshe në null, përdorni metodën:convertEmptyStringsToNull()
->withMiddleware(function (Middleware $middleware) {
$middleware->convertEmptyStringsToNull(except: [
fn ($request) => $request->path() === 'foo/bar',
]);
})
Kjo qasje zëvendëson nevojën për të hequr nga ConvertEmptyStringsToNullapp/Http/Kernel.php
.
Si të parandaloni trimming
vargjet në kërkesa
Për të parandaluar prerjen e vargjeve në shtigje specifike, mund të përdorni metodën:trimStrings()
->withMiddleware(function (Middleware $middleware) {
$middleware->trimStrings(except: [
'/foo',
]);
})
Më parë, ky cilësim menaxhohej në TrimStrings.php
.
Përshtatje të avancuara të softuerit të mesëm
Menaxhimi global i stakut të programeve të mesme
Ju mund të shtoni, hiqni ose zëvendësoni softuerin e mesëm brenda pirgut global:
->withMiddleware(function (Middleware $middleware) {
$middleware->prepend(SomeMiddleware::class);
$middleware->append(AnotherMiddleware::class);
$middleware->remove(UnwantedMiddleware::class);
$middleware->replace(OldMiddleware::class, NewMiddleware::class);
})
Përdorimi i grupeve të Middleware
Laravel lejon personalizimet brenda grupeve të programeve të mesme:
->withMiddleware(function (Middleware $middleware) {
$middleware->group('custom', [
FirstMiddleware::class,
SecondMiddleware::class,
]);
$middleware->prependToGroup('web', NewWebMiddleware::class);
$middleware->appendToGroup('api', NewApiMiddleware::class);
$middleware->removeFromGroup('web', OldWebMiddleware::class);
$middleware->replaceInGroup('api', OldApiMiddleware::class, NewApiMiddleware::class);
})
Opsionet e programit të mesëm specifik për API
Për aplikacionet me qendër API, mund të përdorni metoda të dizajnuara posaçërisht për API-të:
->withMiddleware(function (Middleware $middleware) {
$middleware->statefulApi(); // Enables Sanctum's stateful middleware
$middleware->throttleApi('custom_limiter', true); // Sets API rate limiting
})
Konfigurimi i përfaqësuesve dhe hosteve të besuar
Nëse aplikacioni juaj është pas një përfaqësuesi, mund të konfiguroni përfaqësuesit dhe hostet e besuar:
->withMiddleware(function (Middleware $middleware) {
$middleware->trustHosts(['example.com', '*.example.com']);
$middleware->trustProxies(['192.168.1.1', '192.168.1.2']);
})
Aktivizimi i vërtetimit të sesionit
Për aplikacionet që kërkojnë seanca të vërtetuara në grupin "web", aktivizoni ato me:
->withMiddleware(function (Middleware $middleware) {
$middleware->authenticateSessions();
})
Konfigurimi middleware di laravel 11 ofron thjeshtësi dhe fleksibilitet. Pavarësisht nëse jeni duke personalizuar shtigjet, duke siguruar API-në tuaj ose duke rregulluar grupet tuaja të programeve të mesme, këto opsione ju lejojnë të optimizoni programin e mesëm të aplikacionit tuaj për të përmbushur nevojat tuaja.