لماذا يهم هذا الدرس؟

فهم حدود المصادقة واستخدامه بصورة صحيحة داخل مشروع App Router. تثبت Authentication الهوية بينما يحمي Authorization البيانات والMutations. تنقل Sessions وCookies الحالة الموثوقة لكن يجب تفسيرها عند كل Protected Boundary على الخادم.

كيف تفكر فيه؟

  • في درس حدود المصادقة، النتيجة التي يجب أن تتحقق: لا تعتمد على إخفاء الزر في Client؛ القرار النهائي للصلاحية يجب أن يكون على الخادم.
  • في سياق حدود المصادقة، الخطر الذي يجب أن يبقى تحت السيطرة: فحص Authentication في Navigation أوMiddleware فقط لا يحمي Server Function يمكن استدعاؤها من مسار آخر.
  • تطبيق حدود المصادقة: أنشئ Protected Data Function تفرق بين unauthenticated وforbidden واستدعها من Server-rendered Route.
Diagram

مكان التحقق من الهوية والصلاحية

تطبيق عملي

في التطبيق الخاص بدرس حدود المصادقة: لا تعتمد على إخفاء الزر في Client؛ القرار النهائي للصلاحية يجب أن يكون على الخادم.

authorization.tstypescript
export async function requireProjectAccess(projectId: string) {
  const session = await getSession();
  if (!session) throw new Error('UNAUTHENTICATED');
  if (!(await canAccessProject(session.userId, projectId))) throw new Error('FORBIDDEN');
}

جرّب بنفسك

Practice

تمرين حدود المصادقة

أنشئ Protected Data Function تفرق بين unauthenticated وforbidden واستدعها من Server-rendered Route.

  • سجل النتيجة المتوقعة قبل التنفيذ
  • اختبر حالة صحيحة وحالة فشل مرتبطة بالدرس
  • اشرح في سطرين أين يوجد الحد المسؤول عن القرار

الخلاصة