我正在开发 CakePHP 3.0,我想将数据库密码与“更改密码”功能中表单中输入的旧密码进行比较。但我无法这样做,因为密码经过哈希处理,即使我们使用相同的密码,哈希密码每次都不同。
请帮助我。
提前致谢,
近战
我会在您的 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!'
]);
自定义验证规则 http://book.cakephp.org/3.0/en/core-libraries/validation.html#custom-validation-rules
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)