Mar a nì thu gnàthachadh Laravel 11 Middleware

bathar meadhanach laravel
Tha Laravel 11 a’ nochdadh bathar meadhanach nas sìmplidhe, agus rèiteachadh gu math sgiobalta.
Faodar gnàthachadh Middleware a dhèanamh gu dìreach san fhaidhle bootstrap/app.php
.
San artaigil seo seallaidh mi dhut grunn eisimpleirean de rèiteachadh bathar meadhan Laravel, rèiteachadh bunaiteach agus adhartach.
- Mar a nì thu gnàthachadh laravel middleware
- Mar as urrainn dhut luchd-cleachdaidh agus aoighean ath-stiùireadh gu seòladh ainmichte
- Mar as urrainn dhut aoighean ath-stiùireadh gu seòladh sònraichte
- Mar a shònraicheas tu dè na briosgaidean a bu chòir a thoirmeasg bho chrioptachadh
- Às aonais slighean bho dhìon CSRF
- Às aonais slighean bho dhearbhadh ainm-sgrìobhte URL
- Cuir casg air sreangan falamh bho bhith air an tionndadh gu null
- Mar a chuireas tu casg air bearradh sreang ann an iarrtasan
- Gnàthachadh bathar-bog adhartach
3 minuti
Mar a nì thu gnàthachadh laravel middleware
Mar as urrainn dhut luchd-cleachdaidh agus aoighean ath-stiùireadh gu seòladh ainmichte
Air eagal gu bheil sinn airson an dà chuid luchd-cleachdaidh dearbhte agus luchd-aoigheachd ath-stiùireadh gu seòladh sònraichte, is urrainn dhuinn an dòigh a chleachdadh redirectTo()
. Gu sònraichte, feumar an suidheachadh a dhèanamh anns an fhaidhle bootstrap/app.php
, chì sinn eisimpleir far a bheil aoighean an-còmhnaidh air an ath-stiùireadh chun duilleag logadh a-steach, fhad ‘s a bhios luchd-cleachdaidh as aithne dhuinn, ie luchd-cleachdaidh dearbhte, air an ath-stiùireadh chun deas-bhòrd obrach:
->withMiddleware(function (Middleware $middleware) {
$middleware->redirectTo(
guests: '/admin/login',
users: '/dashboard'
);
})
Roimhe sin, chaidh an rèiteachadh seo a làimhseachadh a-steach Authenticated.php
e RedirectIfAuthenticated.php
Mar as urrainn dhut aoighean ath-stiùireadh gu seòladh sònraichte
Gus ath-sheòladh sònraichte a stèidheachadh airson aoighean, faodaidh tu an dòigh a chleachdadh redirectGuestsTo()
. Gu sònraichte, feumar an suidheachadh a dhèanamh anns an fhaidhle bootstrap/app.php
, chì sinn eisimpleir far a bheil aoighean an-còmhnaidh air an ath-stiùireadh chun duilleag logadh a-steach:
->withMiddleware(function (Middleware $middleware) {
$middleware->redirectGuestsTo('/admin/login');
})
Ann an dreachan roimhe, chaidh an ath-stiùireadh seo a làimhseachadh taobh a-staigh am faidhle middleware. Authenticated.php
.
Mar a shònraicheas tu dè na briosgaidean a bu chòir a thoirmeasg bho chrioptachadh
Gus briosgaidean a thoirmeasg bho chrioptachadh, tha an mearachdan meadhanach di larabhail 11 a’ toirt dhuinn an dòigh-obrach encryptCookies()
, far a bheil am paramadair a 'leigeil leinn na briosgaidean a shònrachadh. Chì sinn eisimpleir:
php->withMiddleware(function (Middleware $middleware) {
$middleware->encryptCookies(except: [
'foo',
'bar',
]);
})
Ann an dreachan roimhe bha am feart seo air a ghabhail a-steach EncryptCookies.php
.
Às aonais slighean bho dhìon CSRF
Ma dh’ fheumas tu cuid de shlighean a thoirmeasg bho dhìon CSRF, bheir Laravel Middleware an dòigh dhuinn validateCsrfTokens()
, a leigeas leinn na slighean ainmichte a thoirmeasg nuair a thèid an cleachdadh gu h-iomchaidh.
Anns a 'chòd a leanas, chì sinn eisimpleir far a bheil sinn a' dùnadh slighean /foo/*
e /bar
. Feumaidh an còd a bhith air a chuir a-steach don fhaidhle bootstrap/app.php
->withMiddleware(function (Middleware $middleware) {
$middleware->validateCsrfTokens(except: [
'/foo/*',
'/bar',
]);
})
Ann an dreachan roimhe de Laravel, chaidh an suidheachadh seo a dhèanamh san fhaidhle VerifyCsrfToken.php
.
Às-dùnadh de route
dalla URL Signature Validation
Gus slighe a chuir a-mach (no route
) bho dhearbhadh ainm-sgrìobhte URL, bathar meadhanach laravel a’ toirt dhuinn an dòigh-obrach validateSignatures()
, chì sinn eisimpleir:
->withMiddleware(function (Middleware $middleware) {
$middleware->validateSignatures(except: [
'/api/*',
]);
})
Ann an dreachan roimhe de Laravel, chaidh rèiteachadh Middleware a làimhseachadh san fhaidhle ValidateSignature.php
.
Cuir casg air sreangan falamh bho bhith air an tionndadh gu null
Gus smachd a chumail air giùlan tionndadh sreangan falamh gu null, cleachd an dòigh:convertEmptyStringsToNull()
->withMiddleware(function (Middleware $middleware) {
$middleware->convertEmptyStringsToNull(except: [
fn ($request) => $request->path() === 'foo/bar',
]);
})
Tha an dòigh-obrach seo a 'dol an àite an fheum air falbh bho ConvertEmptyStringsToNullapp/Http/Kernel.php
.
Ciamar a casg a chur air an trimming
sreathan ann an iarrtasan
Gus casg a chuir air sreangan bho bhith air an gearradh air slighean sònraichte, faodaidh tu an dòigh a chleachdadh:trimStrings()
->withMiddleware(function (Middleware $middleware) {
$middleware->trimStrings(except: [
'/foo',
]);
})
Roimhe sin, chaidh an suidheachadh seo a riaghladh a-steach TrimStrings.php
.
Gnàthachadh bathar-bog adhartach
Stiùireadh cruachan meadhan-bathair cruinneil
Faodaidh tu bathar meadhanach a chur ris, a thoirt air falbh no a chuir na àite taobh a-staigh a’ chruach chruinneil:
->withMiddleware(function (Middleware $middleware) {
$middleware->prepend(SomeMiddleware::class);
$middleware->append(AnotherMiddleware::class);
$middleware->remove(UnwantedMiddleware::class);
$middleware->replace(OldMiddleware::class, NewMiddleware::class);
})
A’ cleachdadh Buidhnean Middleware
Tha Laravel a’ ceadachadh gnàthachadh taobh a-staigh buidhnean meadhan-bathair:
->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);
})
Roghainnean meadhan bathar-bog sònraichte API
Airson tagraidhean API-centric, faodaidh tu dòighean a chleachdadh a chaidh a dhealbhadh gu sònraichte airson APIan:
->withMiddleware(function (Middleware $middleware) {
$middleware->statefulApi(); // Enables Sanctum's stateful middleware
$middleware->throttleApi('custom_limiter', true); // Sets API rate limiting
})
A’ rèiteachadh luchd-ionaid agus luchd-aoigheachd earbsach
Ma tha an tagradh agad air cùl neach-ionaid, faodaidh tu proxies agus luchd-aoigheachd earbsach a rèiteachadh:
->withMiddleware(function (Middleware $middleware) {
$middleware->trustHosts(['example.com', '*.example.com']);
$middleware->trustProxies(['192.168.1.1', '192.168.1.2']);
})
A’ comasachadh dearbhadh seisean
Airson tagraidhean a dh’ fheumas seiseanan dearbhte sa bhuidheann “lìn”, thoir comas dhaibh le:
->withMiddleware(function (Middleware $middleware) {
$middleware->authenticateSessions();
})
An rèiteachadh mearachdan meadhanach di larla 11 a’ tabhann sìmplidheachd agus sùbailteachd. Co-dhiù a tha thu a’ gnàthachadh shlighean, a’ daingneachadh an API agad, no a’ gleusadh do chruachan meadhan-bathair, leigidh na roghainnean sin leat bathar-meadhan an tagraidh agad a bharrachadh gus coinneachadh ri na feumalachdan agad.