اذهب إلى المحتوى
  • 0

شرح Authentication في لارافيل

ايمن ميلاد

السؤال

Recommended Posts

  • 1
بتاريخ On 7‏/5‏/2024 at 20:43 قال ايمن ميلاد:

انا اقصد في لارافيل وليس بايثون 

تستطيع بسهولة التحقق من وجود المستخدم في قاعدة البيانات أثناء عملية المصادقة باستخدام طريقة attempt في فئة Auth مع تمرير اسم المستخدم وكلمة المرور.

أولاً التحقق من وجود المستخدم كالتالي:

use Illuminate\Support\Facades\Auth;

$username = request('username');
$password = request('password');

$user = Auth::attempt([
    'username' => $username,
    'password' => $password,
]);

ثم التحقق من صحة عملية تسجيل الدخول:

if ($user) {
    return redirect()->intended('home');
} else {
    return back()->withErrors([
        'username' => 'اسم المستخدم أو كلمة المرور غير صحيحة',
    ]);
}

وفي حال لم يتم العثور على المستخدم في قاعدة البيانات، بإمكانك عرض رابط لتسجيل حساب جديد:

return back()->withErrors([
    'username' => 'اسم المستخدم أو كلمة المرور غير صحيحة',
])->with('register_link', route('register'));

وللعلم، هناك مكتبات متاحة في Laravel تسهل عملية التحقق من وجود المستخدم في قاعدة البيانات أثناء عملية المصادقة، ومنها Laravel Sanctum وLaravel Jetstream وLaravel Fortify وlaravel/breeze.

والأسهل استخدام laravel/breeze فهي مكتبة بسيطة،  ولميزات مصادقة أكثر تعقيدًا، اعتمد على Laravel Jetstream أو Laravel Fortify.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لا بأس فالجميع كان يجد صعوبة في التعلم والفهم في بداياته، سأحاول شرح الاستيثاق بشكل واضح ومبسط، ال Authentication هو عبارة عن عملية تحقق من هوية المستخدم أو التأكد من أن المستخدم الذي يحاول الوصول إلى نظام أو تطبيق ما هو مالك الحساب المسجّل نفسه، في Laravel مثلا يتم توفير ميزات قوية للتعامل مع الاستيثاق بطريقة سهلة وآمنة.

لتجربته نقوم بتثبيت وننشئ مشروعا جديدا، وننتقل على الطرفية إلى المسار المتواجد فيه المشروع ونكتب هذا الأمر عليه:

composer create-project --prefer-dist laravel/laravel project-name

ولتكوين قاعدة البيانات نفتح ملف `.env` الموجود في جذر المشروع ونقوم بتعديل إعدادات قاعدة البيانات بحيث تتوافق مع البيئة التي نعمل عليها، الخطوة التالية هي الأسهل والأمتع، وهي إنشاء جدول المستخدمين في قاعدة البيانات، أو ما يعرف بعملية التهجير، فقط من خلال هذا الأمر:

php artisan migrate

كما قلت ف Laravel يأتي مع قوالب جاهزة للتسجيل والتحقق من هوية المستخدم. لتثبيتها، نكتب الأمر التالي:
 

php artisan make:auth

تلك القوالب ستسهل علينا أعباء كثيرة كإنشاء الملفات الجديدة الخاصة بصفحات التسجيل وتسجيل الدخول وحتى إعادة تعيين كلمة المرور، وغيرها، في النهاية نشغل الخادم من خلال الأمر:

php artisan serve
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

بارك الله فيك علي الرد 

الان ممكن كود تحقق من انه مستخدم موجود في قاعدة بيانات او لا في حالة موجود ينتقل لصفحة الرئيسية في حالة لا يظهر رسالة خطأ 

هل نستخدم كلاس يسمي User ممكن توضيح 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 20 ساعة قال ايمن ميلاد:

بارك الله فيك علي الرد 

الان ممكن كود تحقق من انه مستخدم موجود في قاعدة بيانات او لا في حالة موجود ينتقل لصفحة الرئيسية في حالة لا يظهر رسالة خطأ 

هل نستخدم كلاس يسمي User ممكن توضيح 

وفيك بارك الله، بالطبع! يمكننا استخدام كلاس يسمى User لتمثيل المستخدمين في قاعدة البيانات فهناك عدة طرق لتنفيذ التحقق من وجود المستخدم في قاعدة البيانات باستخدام Python، ومن بينها استخدام ما يطلق عليه ORM (Object-Relational Mapping) مثل SQLAlchemy.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 دقيقة مضت قال ايمن ميلاد:

في حالة لدي اثنين مستخدمين طالب و admin اريد طالب يظهر له صفحات معينه وادمن كل صفحات كيف يتم دلك 

سابقا عن طريق session الان كيف بي laravel 

ستجد توضيح شامل هنا والمكتبات المتاحة أيضًا، لكن لا حاجة لذلك فالأمر متوفر من خلال لارافل، لكن المكتبات تجعل الأمر أسهل وكود أقل بالنسبة لك.

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 7 ساعة قال Mustafa Suleiman:

ستجد توضيح شامل هنا والمكتبات المتاحة أيضًا، لكن لا حاجة لذلك فالأمر متوفر من خلال لارافل، لكن المكتبات تجعل الأمر أسهل وكود أقل بالنسبة لك.

 

لماذا عند ازور رابط يظهر خطا 

لقطة شاشة 2024-05-09 181651.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...