如何使用新密码检查旧密码

时间:2017-05-24 08:35:46

标签: php laravel passwords laravel-5.4 bcrypt

我使用bcrypt()函数存储用户的密码。现在,如果用户想要更改他/她的密码,那么他/她将输入他的旧密码,我将用旧密码检查。

问题是每当我使用bcrypt函数向用户输入密码时,它会显示一些新生成的密码。

Ex:在注册过程中,用户使用111111密码注册。 在更改密码期间,用户也输入111111,但两者都不同。

问:为什么它显示不同。 我在laravel 5.4中使用它。

1 个答案:

答案 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)]
                );
}