میان افزار لاراول
mba
29 مرداد 1401
دسته بندی laravel
میان افزار به عنوان یک لایه بین کاربر و درخواست عمل می کند. به این معنی که وقتی کاربر از سرور درخواست می کند، درخواست از میان افزار عبور می کند و سپس میان افزار تأیید می کند که آیا درخواست احراز هویت شده است یا خیر. اگر درخواست کاربر احراز هویت شود، درخواست به باطن ارسال می شود. اگر درخواست کاربر احراز هویت نشود، میان افزار کاربر را به صفحه ورود هدایت می کند.
یک میان افزار اضافی را می توان برای انجام کارهای مختلف به جز برای احراز هویت استفاده کرد. به عنوان مثال، میان افزار CORS وظیفه اضافه کردن هدر به تمام پاسخ ها را بر عهده دارد.
چارچوب لاراول شامل چندین میان افزار مانند احراز هویت و حفاظت CSRF است و همه اینها در فهرست برنامه/Http/Middleware قرار دارند.
می توان گفت که میان افزار یک فیلتر درخواست http است که می توانید شرایط را بررسی کنید.
در میان افزار، ما قصد داریم در مورد موضوعات زیر بحث کنیم:
میان افزار بسازید
میان افزار را اعمال کنید
بررسی وضعیت در میان افزار
میان افزار مسیریابی
ایجاد یک میان افزار middleware'
در ترمینال ادیتو و یا خط فرمان ویندوز در مسیر پروژه php artisan make:middleware 'name of the middleware' را تایپ کنید.
در صفحه بالا دستور "php artisan make:middleware CheckAge" را تایپ می کنیم که CheckAge نام میان افزار است. پنجره بالا نشان می دهد که میان افزار با موفقیت با نام "CheckAge" ایجاد شده است.
برای مشاهده اینکه آیا میان افزار CheckAge ایجاد شده است یا خیر، به پروژه خود بروید. نام پروژه ما laravelproject است، بنابراین مسیر میان افزار به این صورت خواهد بود: C:\xampp\htdocs\laravelproject\app\Http\Middleware.
میانافزار میتواند برای همه URLها یا برخی از URLهای خاص اعمال شود. مانند ایجاد دسترسی برای کاربر ادمین و ادیتور و یا کاربر عادی
برای افزودن میان افزار و معرفی اون به پروژه کافیست مراحل را دنبال کنید
مرحله 1: فایل kernel.php را باز کنید. اگر میخواهیم میانافزار را روی همه URLها اعمال کنیم، مسیر میانافزار را در آرایه میانافزار اضافه کنیم.
کد رو در فانکشن • protected $middlewareGroups قرار دهید
CheckAge => \App\Http\Middleware\CheckAge::class,
مرحله 2: دستور php artisan serve را در خط فرمان یا ترمینال وارد کنید
البته میتوانید با اعمال تغییراتی در مسیرenv و یا کانفیگ ادیتو(من باphpstorm کارمیکنم) میتوانید
مرحله 3: فایل CheckAge.php را که به عنوان میان افزار ایجاد کرده اید باز کنید.
کد زیر را درج کنید
public function handle($request, Closure $next)
{
//return "middleware";
echo "hello world";
return $next($request);
}
پس از اجرا نتیجه hello world نمایش داده خواهد شده البته این برای تست هست .
در برنامه برای انجام یه عمل مانند تعیین ادمین در ساده ترین حالت بشکل زیر انجام میشه
یک میان افزار با نام ادمین درست میکنیم
class isAdminMiddleware
{
public function handle(Request $request, Closure $next)
{
if (Auth::user()->role !=='admin'){
return redirect()->route('/');
}
return $next($request);
}
}
و در جدول کاربران که فیلدی بنام role داریم با تعیین شرط وجود نقش ادمین و یا نقض آن نتیجه را به مسیر مورد نظر منتقل میکنیم
و سپس در فایل کرنل در تابع protected $routeMiddleware مسیر سازی کلاس رو انجام میدیم
'admin'=> \App\Http\Middleware\isAdminMiddleware::class,
و بدین شکل فراخوانی میشه
@if(auth()->user()->role === 'admin' || auth()->user()->role === 'author')
@include('admin')
@endif
سایت آیرملو,دانلود سورس برنامه نویسی,طراحی سایت,وب ریچ,وب ریچ طراحی سایت,محمدباقر آیرملو,ayromloo.ir,webrich.ir,سفارش طراحی سایت,ساخت سایت فروشگاهی, نرم افزار اندروید فروشگاهی,هاست ارزان,آموزش هک,تعرفه طراحی سایت,آپلود سایت در هاست,سفارش سایت اماده,وردپرس,سایت آماده,قیمت طراحی سایت
برای ارسال نظر شما باید ابتدا وارد حساب کاربری خود شوید.
نظرات