所以,我有一个用户编辑表单设置正在运行。但我想在此表单中添加一些安全性,要求用户在更改其个人资料详细信息(电子邮件,其他一些信息,密码)之前确认其当前密码。
我的问题是我不知道如何将他们给我的密码与存储在数据库中的散列值进行比较。
通过以下方式进行了哈希:
protected function _setPassword($password) {
return (new DefaultPasswordHasher)->hash($password);
}
我在Stack Overflow上发现了这篇文章,并尝试使用以下内容作为自定义验证器来实现它:
public function verifyPassword($value, $context) {
$user = $this->find('conditions', [
'Users.id' => $context['data']['id'],
]);
return password_verify($value, $user->password);
}
但它似乎没有起作用。当然这是针对3.0的alpha版本,所以也许这不应该再起作用了。我只是想知道是否有某种方法来比较他们给我的密码到存储在数据库中的散列版本?