याचा अर्थ असा की जेव्हा वापरकर्ता (Laravel view) सर्व्हरला (Laravel controller) विनंती करतो, तेव्हा विनंती मिडलवेअरमधून जाईल. अशा प्रकारे मिडलवेअर विनंती प्रमाणीकृत आहे की नाही हे तपासू शकते:
Laravel तुम्हाला परवानगी देतो defiपूर्ण करा आणि प्रमाणीकरण वगळता विविध कार्ये करण्यासाठी अतिरिक्त मिडलवेअर वापरा.
Laravel Middlewares, जसे की प्रमाणीकरण आणि CSRF संरक्षण, निर्देशिकेत स्थित आहेत अॅप/Http/मिडलवेअर .
म्हणून आम्ही असे म्हणू शकतो की मिडलवेअर हे HTTP विनंती फिल्टर आहे, ज्याद्वारे परिस्थिती सत्यापित करणे आणि क्रिया करणे शक्य आहे.
नवीन मिडलवेअर तयार करण्यासाठी आम्ही खालील कमांड चालवतो:
php artisan make:middleware <name-of-middleware>
आम्ही तयार करतो middleware
आणि आम्ही त्याला कॉल करतो CheckAge
, artisan
आम्हाला खालीलप्रमाणे उत्तर देईल:
वरील विंडो दर्शवते की मिडलवेअर नावाने यशस्वीरित्या तयार केले गेले आहे ” वय तपासा ".
चेकएज मिडलवेअर तयार केले आहे की नाही हे पाहण्यासाठी, अॅप/Http/मिडलवेअर फोल्डरमधील प्रोजेक्टवर जा आणि तुम्हाला नवीन तयार केलेली फाइल दिसेल.
नवीन तयार केलेल्या फाईलमध्ये खालील कोड आहे
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request);
}
}
मिडलवेअर वापरण्यासाठी, आम्हाला ते नोंदणीकृत करावे लागेल.
Laravel मध्ये मिडलवेअरचे दोन प्रकार आहेत:
Middleware globale
Route Middleware
Il जागतिक मिडलवेअर अनुप्रयोगातील प्रत्येक HTTP विनंतीवर कार्यान्वित केले जाईल, तर मार्ग मिडलवेअर विशिष्ट मार्गावर नियुक्त केले जाईल. मिडलवेअरवर नोंदणी केली जाऊ शकते app/Http/Kernel.php. या फाइलमध्ये दोन गुणधर्म आहेत $midleware e $routeMiddleware . $midleware मालमत्ता जागतिक मिडलवेअर आणि मालकी नोंदणी करण्यासाठी वापरले जाते $routeMiddleware रूट-विशिष्ट मिडलवेअर नोंदणी करण्यासाठी वापरले जाते.
ग्लोबल मिडलवेअरची नोंदणी करण्यासाठी, $middleware प्रॉपर्टीच्या शेवटी वर्गाची यादी करा.
protected $middleware = [
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
रूट-विशिष्ट मिडलवेअरची नोंदणी करण्यासाठी, $routeMiddleware प्रॉपर्टीमध्ये की आणि मूल्य जोडा.
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
आम्ही तयार केले वय तपासा मागील उदाहरणात. आम्ही आता मिडलवेअर रूट प्रॉपर्टीमध्ये याची नोंदणी करू शकतो. अशा नोंदणीसाठी कोड खाली दर्शविला आहे.
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
];
आम्ही मिडलवेअरसह पॅरामीटर्स देखील पास करू शकतो.
उदाहरणार्थ, जर तुमच्या अॅप्लिकेशनमध्ये वापरकर्ता, प्रशासक, सुपर अॅडमिन इत्यादी वेगवेगळ्या भूमिका असतील. आणि तुम्हाला भूमिकेवर आधारित क्रिया प्रमाणीकृत करायची आहे, तुम्ही मिडलवेअरसह पॅरामीटर्स पास करून ते करू शकता.
आम्ही तयार केलेल्या मिडलवेअरमध्ये खालील फंक्शन आहे आणि आर्ग्युमेंट नंतर आम्ही कस्टम वितर्क पास करू शकतो $पुढील .
public function handle($request, Closure $next)
{
return $next($request);
}
आता रोल पॅरामीटर एका नवीन मिडलवेअरवर सेट करण्याचा प्रयत्न करूया जे आपण सुरवातीपासून तयार करणार आहोत, त्यानंतर खालील कमांड चालवून रोल मिडलवेअर तयार करण्यासाठी पुढे जा.
हँडल पद्धतीत खालीलप्रमाणे बदल करा
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware {
public function handle($request, Closure $next, $role) {
echo "Role: ".$role;
return $next($request);
}
}
आम्ही पॅरामीटर जोडले $role
, आणि पद्धतीच्या आत ओळ echo
आउटपुटमध्ये भूमिकेचे नाव लिहिण्यासाठी.
आता विशिष्ट मार्गासाठी RoleMiddleware मिडलवेअरची नोंदणी करूया
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
'Role' => \App\Http\Middleware\RoleMiddleware::class,
];
आता पॅरामीटरसह मिडलवेअरची चाचणी घेण्यासाठी, आम्हाला विनंती आणि प्रतिसाद तयार करणे आवश्यक आहे. प्रतिसादाचे अनुकरण करण्यासाठी आपण कंट्रोलर तयार करू ज्याला आपण TestController म्हणू
php artisan make:controller TestController --plain
नुकतीच अंमलात आणलेली कमांड फोल्डरमध्ये नवीन कंट्रोलर तयार करेल app/Http/TestController.php
, आणि पद्धत बदला index
ओळ सह echo "<br>Test Controller.";
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class TestController extends Controller {
public function index() {
echo "<br>Test Controller.";
}
}
प्रतिसाद सेट केल्यानंतर, आम्ही फाइल संपादित करून विनंती तयार करतो routes.php
जोडून route role
Route::get('role',[
'middleware' => 'Role:editor',
'uses' => 'TestController@index',
]);
या टप्प्यावर आपण URL ला भेट देऊन उदाहरण वापरून पाहू शकतो http://localhost:8000/role
आणि ब्राउझरमध्ये आपण दोन पाहू echo
Role editor
Test Controller
Il terminable Middleware
ब्राउझरला प्रतिसाद पाठवल्यानंतर काही कार्ये करते. पद्धतीसह मिडलवेअर तयार करून हे साध्य केले जाऊ शकते मिडलवेअरमध्ये समाप्त करा. Il terminable Middleware
सह नोंदणीकृत असणे आवश्यक आहे middleware
जागतिक पद्धत terminate
दोन युक्तिवाद प्राप्त होतील $विनंती e $प्रतिसाद.
पद्धत Terminate
खालील कोडमध्ये दर्शविल्याप्रमाणे तयार करणे आवश्यक आहे.
php artisan make:middleware TerminateMiddleware
मिडलवेअर तयार झाल्यावर app/Http/Middleware/TerminateMiddleware.php
खालीलप्रमाणे कोड बदलू
<?php
namespace App\Http\Middleware;
use Closure;
class TerminateMiddleware {
public function handle($request, Closure $next) {
echo "Executing statements of handle method of TerminateMiddleware.";
return $next($request);
}
public function terminate($request, $response) {
echo "<br>Executing statements of terminate method of TerminateMiddleware.";
}
}
या प्रकरणात आमच्याकडे एक पद्धत आहे handle
आणि एक पद्धत terminate
दोन पॅरामीटर्ससह $request
e $response
.
आता मिडलवेअरची नोंदणी करूया
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
'Role' => \App\Http\Middleware\RoleMiddleware::class,
'terminate' => \App\Http\Middleware\TerminateMiddleware::class,
];
आता आपल्याला प्रतिसादाचे अनुकरण करण्यासाठी नियंत्रक तयार करणे आवश्यक आहे
php artisan make:controller XYZController --plain
वर्गातील सामग्री सुधारित करणे
class XYZController extends Controller {
public function index() {
echo "<br>XYZ Controller.";
}
}
आता आपल्याला फाइल संपादित करायची आहे routes/web.php
विनंती सक्रिय करण्यासाठी आवश्यक मार्ग जोडणे
Route::get('terminate',[
'middleware' => 'terminate',
'uses' => 'XYZController@index',
]);
या टप्प्यावर आपण URL ला भेट देऊन उदाहरण वापरून पाहू शकतो http://localhost:8000/terminate
आणि ब्राउझरमध्ये आपल्याला खालील ओळी दिसतील
Executing statements of handle method of TerminateMiddleware
XYZController
Executing statements of terminate method of TerminateMiddleware
Ercole Palmeri
आपल्याला कदाचित हे देखील आवडेलः
लाखो लोक स्ट्रीमिंग सेवांसाठी पैसे देतात, मासिक सदस्यता शुल्क भरतात. असे सामान्य मत आहे की आपण…
Veeam द्वारे Coveware सायबर खंडणी घटना प्रतिसाद सेवा प्रदान करणे सुरू ठेवेल. Coveware फॉरेन्सिक आणि उपाय क्षमता प्रदान करेल…
वनस्पती व्यवस्थापनासाठी नाविन्यपूर्ण आणि सक्रिय दृष्टीकोनसह, भविष्यसूचक देखभाल तेल आणि वायू क्षेत्रात क्रांती घडवत आहे.…
UK CMA ने आर्टिफिशियल इंटेलिजन्स मार्केटमध्ये बिग टेकच्या वर्तनाबद्दल चेतावणी जारी केली आहे. तेथे…