مشکل در مقایسه نکردن پسورد داخل دیتابیس با پسورد وارد شده در لاکین

الان کد من اینه که خودم ریجسترو لاگین نوشتم از لاگین و ریجستر لاراول استفاده نکردم public function login2(\Illuminate\Http\Request $request) { $tt= session()->get('login'); //$re=encrypt($request->get('password')); $y=Hash::make($request->get('password')); if(preg_match("/^09[0-9]+.{8}$/", $tt)){ if(User::where([['mobile',$tt],['password',$y]])->first()){ return redirect('index'); }else{ return redirect("login2")->withErrors("رمز اشتباه است"); } }else{ if(User::where([['email',$tt],['password',$request->get('password')]])->first()){ return redirect('index'); }else{ return redirect("login2")->withErrors("رمز اشتباه است"); } } } اما پسورد دیتابیس با پسورد که وارد میکنم با خم برابر نیست اما زمانیکه پسورد دیتابیس رو از حالت انکریپت در می آورم درست میشه ‍‍‍```

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

من سوالتون رو متوجه نشدم ولی اینو بهتون بگم موقعی که میخواید پسورد وارد شده رو با پسورد دیتابیس چک کنید یا باید انکریپت شده پسورد کاربر رو با پسورد دیتابیس چک کنید یا دیکرپت شده پسورد دیتابیس رو با پسورد کاربر چک کنید.

$userPass = ...
$dbPass = ...

// way one:
if (encript($userPass) == $dbPass) ...

// way two:
if ($userPass == decript($dbPass)) ...

این قطعه کد رو برای فهم بیشتر درمورد آنچه گفتم نوشتم اگر نه توابعی که استفاده کردم صرفا نمایشی است.

online-support-icon