بعد تنظيم البيانات والتحقق منها باستخدام Form Request Validation، تظهر مرحلة أساسية لا يمكن لأي تطبيق ويب الاستغناء عنها، وهي إدارة تسجيل المستخدمين وحماية الصفحات.
في هذه المرحلة، يواجه كثير من المطورين مشكلة واضحة:
بناء نظام تسجيل دخول من الصفر يتطلب وقتًا طويلًا، وقد يؤدي إلى أخطاء أمنية خطيرة.
في المقابل، يحتاج المطور إلى حل جاهز، آمن، وقابل للتخصيص، دون تعقيد غير ضروري.
نتيجةً لذلك، يوفّر Laravel حلول Authentication رسمية، من أبرزها Laravel Breeze و Laravel Fortify.
المشكلة: بناء Authentication يدويًا
عند محاولة بناء نظام تسجيل يدويًا، تظهر عدة تحديات، من بينها:
- تشفير كلمات المرور بشكل غير آمن
- أخطاء في إدارة الجلسات
- ضعف حماية الصفحات الخاصة
- تكرار نفس الكود في كل مشروع
- صعوبة إضافة ميزات لاحقًا مثل إعادة تعيين كلمة المرور
وبالتالي، يصبح النظام هشًا، ومعرّضًا للاختراق، وصعب الصيانة.
الحل: استخدام أنظمة Authentication الرسمية في Laravel
Laravel يقدّم حلولًا رسمية ومجرّبة لإدارة Authentication.
بدل إعادة اختراع العجلة، يمكنك الاعتماد على حزم جاهزة توفّر:
- تسجيل الدخول والتسجيل
- إدارة الجلسات
- إعادة تعيين كلمة المرور
- حماية الصفحات باستخدام middleware
وبذلك، تبدأ بمستوى أمان عالٍ منذ البداية.
الفرق بين Laravel Breeze و Laravel Fortify
Laravel Breeze
- حل بسيط وخفيف
- مناسب للمبتدئين
- يوفّر واجهات جاهزة باستخدام Blade
- سهل التعديل والفهم
Laravel Fortify
- Backend فقط (بدون واجهات)
- مناسب للمشاريع المتقدمة
- يُستخدم غالبًا مع Vue أو React
- يمنح مرونة أكبر
وبالتالي، الاختيار يعتمد على نوع المشروع ومستوى الخبرة.
متى تختار Laravel Breeze؟
اختر Laravel Breeze إذا:
- كنت مبتدئًا في Laravel
- تريد نظام تسجيل جاهز بسرعة
- تستخدم Blade في الواجهات
- تعمل على مشروع صغير أو متوسط
متى تختار Laravel Fortify؟
اختر Laravel Fortify إذا:
- كنت تبني API أو SPA
- تستخدم Frontend Framework
- تحتاج مرونة عالية
- تريد التحكم الكامل في الواجهات
تثبيت Laravel Breeze خطوة بخطوة
أولًا، ثبّت الحزمة:
composer require laravel/breeze --dev
ثم شغّل الأمر:
php artisan breeze:install
بعد ذلك:
php artisan migrate
npm install && npm run dev
وبذلك، يتم إنشاء:
- صفحات تسجيل الدخول
- صفحات التسجيل
- إعادة تعيين كلمة المرور
- Middleware للحماية
كيف يعمل Authentication في Laravel؟
Laravel يعتمد على:
- Sessions
- Guards
- Middleware
عند تسجيل الدخول:
- يتم التحقق من البيانات
- يتم إنشاء جلسة للمستخدم
- يتم حفظ حالة الدخول تلقائيًا
وبالتالي، لا يحتاج المطور للتعامل مع هذه التفاصيل يدويًا.
حماية الصفحات باستخدام Middleware
لحماية Route:
Route::middleware('auth')->group(function () {
Route::get('/dashboard', function () {
return view('dashboard');
});
});
نتيجةً لذلك، لا يمكن الوصول للصفحة إلا بعد تسجيل الدخول.
الوصول إلى المستخدم الحالي
داخل Controller:
auth()->user();
داخل Blade:
{{ auth()->user()->name }}
وبذلك، يصبح التعامل مع المستخدم الحالي بسيطًا وواضحًا.
أخطاء شائعة في Authentication
نسيان تشغيل migrations
المشكلة: فشل تسجيل المستخدم
الحل: التأكد من تنفيذ migrate
عدم حماية الصفحات الحساسة
المشكلة: وصول غير مصرح
الحل: استخدام middleware auth
التعديل المباشر على ملفات Breeze بدون فهم
المشكلة: كسر النظام
الحل: فهم الهيكل قبل التعديل
متى يصبح Authentication ضروريًا؟
Authentication ضروري عندما:
- يحتوي التطبيق على مستخدمين
- توجد صفحات خاصة
- يتم حفظ بيانات شخصية
- يتم التحكم في الصلاحيات
وبالتالي، أي تطبيق حقيقي لا يمكن أن يعمل بدونه.
