我想在更新运行之前验证用户的旧密码以确认密码更改。但我不断收到false
回复。
从表格
获取提供的“旧密码”$old_password = $request->old_password;
获取当前用户
$user = $this->getUser($request->id);
根据保存在数据库中的密码检查密码
dd($this->checkPassword($request->old_password, $user->password));
在浏览器中返回false。
protected function getUser($id)
{
return User::find($id);
}
protected function checkPassword($password, $current)
{
return (bool) (Hash::check($password, $current) === 1);
}
答案 0 :(得分:2)
Hash::check
已经返回一个布尔值。
您的方法与=== 1的结果进行比较,无论如何都会返回false。 ===
也比较了类型,它将(boolean)true / false与(整数)1进行比较,它永远不会为真。
您的功能应该返回Hash::check($password, $current);
protected function checkPassword($password, $current)
{
return Hash::check($password, $current);
}
答案 1 :(得分:0)
请参考以下示例:
$user = Auth::user();
$oldPass = $request->input('old_password');
if(Hash::check( $oldPass , $user->password) )
{
// is Match Password
}
else
{
// not Match
}