بناء نظام مصادقة بسيط في Laravel
المقدمة
المصادقة هي عملية التحقق من هوية المستخدم الذي يحاول الوصول إلى نظام ما، وهي أحد العناصر الأساسية في تطوير تطبيقات الويب الآمنة. يقدم Laravel، وهو إطار عمل قوي يعتمد على PHP، نظام مصادقة متكامل وسهل الاستخدام يمكنك من إعداد نظام تسجيل دخول وتسجيل بسرعة وكفاءة. في هذا الدليل، سنأخذك خطوة بخطوة لبناء نظام مصادقة بسيط باستخدام Laravel، بدءًا من إنشاء المشروع وحتى تخصيص الصفحات وحماية المسارات.
الخطوة 1: تثبيت Laravel وإنشاء مشروع جديد
إذا لم يكن لديك مشروع Laravel موجود، يجب عليك أولاً تثبيت Laravel وإنشاء مشروع جديد. تأكد من أن لديك Composer
مثبت على جهازك. افتح سطر الأوامر واستخدم الأمر التالي لإنشاء مشروع Laravel جديد:
composer create-project --prefer-dist laravel/laravel authentication-system
هذا الأمر يقوم بتنزيل نسخة جديدة من Laravel وإنشاء مشروع جديد باسم authentication-system
. بعد الانتهاء من التثبيت، انتقل إلى مجلد المشروع:
cd authentication-system
الخطوة 2: إعداد نظام المصادقة باستخدام Laravel UI
في الإصدارات الأحدث من Laravel (الإصدار 8 فما فوق)، لا يتم تضمين حزمة المصادقة الأساسية بشكل افتراضي. لذلك، نحتاج إلى تثبيت الحزمة Laravel UI لتوليد صفحات تسجيل الدخول والتسجيل.
لتثبيت الحزمة، استخدم الأوامر التالية:
composer require laravel/ui
php artisan ui vue --auth
الأمر الأول يقوم بتثبيت الحزمة Laravel UI
، بينما يقوم الأمر الثاني بتوليد جميع ملفات المصادقة الضرورية باستخدام Vue.js كخيار افتراضي للواجهة الأمامية. يمكنك أيضًا استخدام react
أو bootstrap
بدلًا من vue
إذا كنت تفضل ذلك.
الخطوة 3: تثبيت حزمة NPM وتجميع الأصول
لإعداد الملفات اللازمة للواجهة الأمامية مثل CSS وJavaScript، يجب عليك تثبيت حزم NPM اللازمة ثم تجميع الأصول. استخدم الأوامر التالية:
npm install
npm run dev
يقوم الأمر npm install
بتثبيت جميع الحزم المطلوبة وفقًا لملف package.json
، بينما يقوم الأمر npm run dev
بتجميع الأصول باستخدام Laravel Mix في وضع التطوير.
الخطوة 4: إعداد قاعدة البيانات وتشغيل الترحيلات
قبل تشغيل الترحيلات، تحتاج إلى إعداد اتصال قاعدة البيانات في ملف .env
الموجود في جذر مشروع Laravel. افتح الملف وعدل إعدادات قاعدة البيانات لتناسب إعدادات بيئتك المحلية:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_username
DB_PASSWORD=your_database_password
بعد إعداد قاعدة البيانات، قم بتشغيل الترحيلات لإنشاء جدول المستخدمين في قاعدة البيانات باستخدام الأمر التالي:
php artisan migrate
سيقوم هذا الأمر بإنشاء جميع الجداول الضرورية لنظام المصادقة، بما في ذلك جدول users
.
الخطوة 5: تخصيص صفحات المصادقة وتحسين تجربة المستخدم
تأتي Laravel مع قوالب جاهزة لصفحات التسجيل وتسجيل الدخول وإعادة تعيين كلمة المرور. يمكنك العثور على هذه القوالب في مجلد resources/views/auth
. يمكنك تعديل هذه الملفات لتناسب تصميم تطبيقك أو لإضافة حقول إضافية مثل اسم المستخدم أو رقم الهاتف.
لإضافة حقل جديد، مثل “الاسم الكامل”، إلى نموذج التسجيل، افتح الملف register.blade.php
وأضف الكود التالي:
<div class="form-group">
<label for="name">الاسم الكامل</label>
<input type="text" class="form-control" name="name" required autofocus>
</div>
تأكد أيضًا من تحديث دالة validator
في المتحكم RegisterController
للتحقق من الحقل الجديد:
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
الخطوة 6: حماية المسارات باستخدام الوسائط (Middleware)
لحماية المسارات وضمان أن المستخدمين المسجلين فقط يمكنهم الوصول إلى صفحات معينة، يمكنك استخدام الوسائط auth
. على سبيل المثال، لإضافة الحماية إلى مسار محدد في ملف routes/web.php
:
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware('auth');
سيضمن هذا الكود أن صفحة /dashboard
يمكن الوصول إليها فقط من قبل المستخدمين الذين قاموا بتسجيل الدخول.
الخطوة 7: إعداد ميزات إضافية للمصادقة
Laravel يوفر العديد من الميزات المتقدمة لنظام المصادقة، مثل التحقق بخطوتين، تفعيل البريد الإلكتروني، وتسجيل الدخول الاجتماعي. يمكنك إضافة حزم إضافية مثل laravel/socialite
للتكامل مع منصات تسجيل الدخول الاجتماعي مثل Google وFacebook.
لإعداد تسجيل الدخول الاجتماعي باستخدام Google، يمكنك تثبيت حزمة Socialite وتشغيل الأوامر اللازمة لتسجيل وإعداد OAuth:
composer require laravel/socialite
ثم قم بتكوين بيانات الاعتماد الخاصة بك في ملف .env
وأضف طرق OAuth إلى متحكمات المصادقة الخاصة بك.
الخاتمة
يتيح لك Laravel بناء نظام مصادقة قوي وآمن بسرعة وسهولة. باستخدام هذا الدليل، يمكنك إعداد نظام تسجيل دخول وتسجيل متكامل، مما يوفر الأمان ويعزز تجربة المستخدم. استمر في استكشاف المزيد من ميزات Laravel لتحسين تطبيقاتك وتوفير تجربة مستخدم أفضل.
لمزيد من المعلومات، يمكنك زيارة المستندات الرسمية للارافيل.
اترك تعليقاً