请有人帮助我,我的老板会杀了我,这段代码在laravel
无效,因为密码是hashed
,它是bcryted
,我如何比较和获取我的us_id(代表username_id),试图登录但密码错误的那个,你有什么建议,我想做的很简单,我试着理解用户是否输入了错误密码,但他/她的用户名是对的。我是初学者。抱歉:(。我知道这不起作用,但如果用户输入了错误的密码,我应该怎么做?
public function login(Request $request, Logs $logs)
{
$password = $request->input('password');
$myuser = \DB::table('users')->where('password', $password)->first();
if (\Hash::check($password, $myuser->password)) {
$logdata = $myuser->id;
$logs->insert($logdata);
return view('MainPages.example', ['pass' => $password]);
}
}
答案 0 :(得分:1)
Laravel对密码进行了哈希处理,因此请使用Hash::check()
方法:
if (\Hash::check($password, $myuser1->password)) {
Laravel
Hash
外观提供用于存储用户密码的安全Bcrypt哈希。如果您使用的是Laravel应用程序附带的内置LoginController
和RegisterController
类,它们将自动使用Bcrypt进行注册和身份验证。
答案 1 :(得分:0)
你不能指望这个有效。
密码以加密方式存储。理论上,多个人可以拥有完全相同的密码,但在存储时,它们中没有一个看起来完全相同。因此,您不知道在记录中要查找什么,即使您知道要查找的密码,因为您不知道在存储它的特定记录中使用了什么盐。
您无法像这样检索密码查找记录。相反,您必须首先检索记录(基于其他一些密钥,例如用户名或ID),然后查看密码是否加密以匹配具有重要盐的给定密码。