انتقل إلى محتوى الدرس

Authorizing Controllers and Requests تفويض الصلاحيات بالمتحكم وطلب التحقق

فحص الصلاحيات في المسارات والمتحكمات وقوالب Blade عبر @can و @cannot وتطبيق قواعد التحصين الأمني الشامل في Laravel.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يمكنك فرض سياسات النماذج إما في مطلع دالة المتحكم عبر Gate::authorize أو مباشرة داخل دالة authorize في كلاس طلب التحقق FormRequest. يضمن فحص الصلاحية داخل FormRequest رفض الطلبات غير المصرحة برمز 403 مبكراً قبل البدء بفحص قواعد التحقق من المدخلات.

  • الإلزام داخل المتحكم (Gate::authorize): فحص صريح وواضح في أول سطر من دالة المتحكم.
  • الإلزام في طلب التحقق (FormRequest::authorize): يجمع فحص الصلاحية والتحقق من الحقول في كلاس واحد.
  • جلب نموذج المسار ($this->route): يصل إلى كائن النموذج المحقون بالمسار لفحص ملكيته داخل الطلب.
مخطط معماري يوضح تطبيق الصلاحيات بتوجيهات Can وتحصين أمان تطبيقات Laravel في إطار العمل Laravel 12
PHP
// Inside UpdatePostRequest extends FormRequest:
public function authorize(): bool
{
    $post = $this->route('post');
    return $this->user()->can('update', $post);
}