امنیت و معماری · ۱۰ دقیقه مطالعه

Middleware و Authorization

Middleware — نگهبان مسیر

لایه‌ای که قبل از Controller اجرا می‌شود:

Route::get('/dashboard', [DashboardController::class, 'index'])
    ->middleware('auth');

Route::middleware(['auth', 'verified'])->group(function () {
    Route::get('/dashboard', ...);
    Route::get('/profile', ...);
});

Middleware دلخواه

php artisan make:middleware EnsureIsAdmin
public function handle(Request $request, Closure $next) {
    if (! $request->user()?->is_admin) {
        abort(403);
    }
    return $next($request);
}

Authorization — مجوز روی عملیات

Policy برای «آیا این کاربر اجازهٔ این کار را روی این منبع دارد»:

php artisan make:policy CoursePolicy --model=Course
public function update(User $user, Course $course): bool {
    return $user->id === $course->user_id;
}
$this->authorize('update', $course);   // در کنترلر
@can('update', $course) ... @endcan    // در Blade

تفاوت کلیدی

  • Authentication: تو کی هستی؟ (ورود)
  • Authorization: اجازهٔ چه کاری داری؟ (مجوز)

همین پنل ادمین آرنا با middleware و بررسی is_admin محافظت می‌شود.

برای ثبت پیشرفت و کسب XP وارد شو.

ورود به میدان
→ احراز هویت
Service Container، Provider و Config ←