我正在开发CakePHP 3.0,我想将数据库密码与“更改密码”功能中表单中输入的旧密码进行比较。但是我无法这样做,因为即使我们使用相同的密码,密码也会被哈希,并且每次哈希密码都不同。
请帮助我。
提前致谢, 混战
答案 0 :(得分:3)
我会在你的UsersTable的验证器中执行此操作。
的src /型号/表/ UsersTable.php
$validator
->notEmpty('current_password')
->add('current_password', 'custom', [
'rule' =>
function($value, $context) {
$query = $this->find()
->where([
'id' => $context['data']['id']
])
->first();
$data = $query->toArray();
return (new DefaultPasswordHasher)->check($value, $data['password']);
},
'message' => 'Current password is incorrect!'
]);