我使用bcrypt()函数存储用户的密码。现在,如果用户想要更改他/她的密码,那么他/她将输入他的旧密码,我将用旧密码检查。
问题是每当我使用bcrypt函数向用户输入密码时,它会显示一些新生成的密码。
Ex:在注册过程中,用户使用111111密码注册。 在更改密码期间,用户也输入111111,但两者都不同。
问:为什么它显示不同。 我在laravel 5.4中使用它。答案 0 :(得分:1)
您可以使用Hash::check()
检查旧密码,而不是数据库中的密码
if (Hash::check($oldPassword, $passwordFromDb))
{
// it is a match
}
因此,示例实现将是:
$oldPassword = $request->input('old-password');
$newPassword = $request->input('new-password');
$hashedPassword = Auth::user()->password;
if (Hash::check($oldPassword, $hashedPassword))
{
$user = User::find(Auth::user()->id)
->update(
['password'=> Hash::make($newPassword)]
);
}