مارک پلاس

تکنولوژی نوین اینترنتی

Middleware لاراول

دسته‌بندی‌ها

Middleware لاراول

🔐 Middleware در لاراول


📌 راهی برای فیلتر کردن درخواست‌های HTTP


🧠 Middleware چیست؟

Middleware در لاراول فیلترهایی هستند که قبل یا بعد از پردازش درخواست توسط کنترلر اجرا می‌شوند. می‌تونن برای:

  • احراز هویت کاربر

  • بررسی نقش و سطح دسترسی

  • تغییر در response یا request

  • لاگ‌گیری و امنیت

استفاده بشن.


🧳 چند Middleware پیش‌فرض لاراول:

Middlewareکاربرد
authبررسی ورود کاربر
guestفقط مهمان‌ها (کاربران وارد نشده)
verifiedبررسی تایید ایمیل کاربر
throttleمحدودیت تعداد درخواست (rate limiting)
csrfجلوگیری از حملات CSRF
encrypt_cookiesرمزنگاری کوکی‌ها

🛠️ استفاده از Middleware در Route

php
Route::get('/dashboard', function () { return view('dashboard'); })->middleware('auth');

یا برای چند middleware:

php
Route::get('/admin', function () { return 'Admin'; })->middleware(['auth', 'is_admin']);

🧪 تعریف Middleware سفارشی

۱. ساخت Middleware جدید:

bash
php artisan make:middleware CheckAge

۲. ویرایش کلاس Middleware:

php
// app/Http/Middleware/CheckAge.php public function handle($request, Closure $next) { if ($request->age < 18) { return redirect('no-access'); } return $next($request); }

۳. ثبت در app/Http/Kernel.php

در $routeMiddleware اضافه کن:

php
'check.age' => \App\Http\Middleware\CheckAge::class,

۴. استفاده در Route:

php
Route::get('/restricted', function () { return 'Welcome adult!'; })->middleware('check.age');

📦 Middleware گروهی

در Kernel.php، گروه‌هایی مانند web و api تعریف شده‌اند:

php
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Session\Middleware\StartSession::class, ... ], ];

🎯 Middleware با پارامتر

مثال: محدود کردن تعداد درخواست‌ها

php
Route::middleware('throttle:10,1')->group(function () { Route::get('/api/data', fn () => 'data'); });

یعنی حداکثر 10 درخواست در هر دقیقه.


🚀 اجرای Middleware بعد از پاسخ (terminate)

در برخی موارد باید بعد از ارسال پاسخ کاری انجام بدی (مثل لاگ‌گیری):

php
public function terminate($request, $response) { // ذخیره لاگ، آنالیتیکس و غیره }

✅ جمع‌بندی

Middlewareها ابزار قدرتمندی برای مدیریت امنیت، اعتبارسنجی، لاگ‌گیری، و تغییر رفتار برنامه هستند.
لاراول به‌طور پیش‌فرض چندین middleware کاربردی داره، ولی می‌تونی خیلی راحت middleware خودت رو بسازی.


🔧 چک‌لیست استفاده از Middleware

  • محافظت از route با auth

  • تعریف Middleware برای نقش‌ها و سطح دسترسی

  • جلوگیری از اسپم با throttle

  • استفاده از csrf در فرم‌ها

  • استفاده از terminate برای لاگ‌گیری

محتوای مرتبط

پست‌های مرتبط