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

Protecting Private Pages with Auth Guards حماية الصفحات الخاصة بحارس المصادقة Auth Guard

نفّذ نظام تسجيل دخول آمن والتحقق من الهوية وتجديد الجلسة وحراس حماية الصفحات وميزة تذكرني وتسجيل الخروج النظيف في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

تفحص دالة حارس المصادقة (Auth Guard) وجود isset($_SESSION["user_id"]) في بداية كل صفحة محمية، وتحول الزوار غير المسجلين إلى /login فوراً.

  • اجمع الفحص في دالة موحدة قابلة لإعادة الاستخدام مثل requireAuth().
  • استدعِ دائماً exit; فور إرسال رأس التحويل Location: /login حتى لا يُنفذ الكود الخاص أسفله.
  • في صفحات الإدارة، أضف فحصاً ثانياً يتحقق من الصلاحية $_SESSION["user_role"] === "admin".

عند غياب user_id يمنع الحارس الوصول، وعند وجوده يسمح للمتحكم بالمتابعة.

مخطط تدفق التنفيذ العملي لقسم حماية الصفحات الخاصة بحارس المصادقة Auth Guard في لغة PHP
PHP
<?php

function checkAuthGuard(array $session): string
{
    if (empty($session['user_id'])) {
        return 'Redirect -> /login (401 Unauthorized)';
    }
    return 'Access Granted for User #' . $session['user_id'];
}

echo checkAuthGuard([]) . "\n";
echo checkAuthGuard(['user_id' => 42]) . "\n";