امنیت و معماری
·
۱۰ دقیقه مطالعه
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محافظت میشود.