تستطيع بسهولة التحقق من وجود المستخدم في قاعدة البيانات أثناء عملية المصادقة باستخدام طريقة 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.