我正在使用cakephp3和auth组件进行登录/注销。 我的[users]表users。[password]列不只是普通字符而加密。 有没有不使用或覆盖身份验证passwordHasher的方法?
答案 0 :(得分:1)
在User.php
文件夹中创建一个名为/src/Model/Entity
的文件,其中包含以下内容。保存时,它将自动加密您的密码。
use Cake\Auth\DefaultPasswordHasher;
use Cake\ORM\Entity;
class User extends Entity
{
protected function _setPassword($value)
{
if (strlen($value)) {
$hasher = new DefaultPasswordHasher();
return $hasher->hash($value);
}
}
}
答案 1 :(得分:1)
您还可以像下面那样在控制器中对密码进行哈希处理。 在控制器中使用密码哈希库。
use Cake\Auth\DefaultPasswordHasher;
现在,您可以使用以下代码像这样对您的密码字符串进行哈希处理。
$password = "Your Password";
$hasher = new DefaultPasswordHasher();
$hasher->hash($password);
答案 2 :(得分:0)
use Cake\Auth\DefaultPasswordHasher;
注册时使用此
$user = $this->Users->newEntity();
$hasher = new new DefaultPasswordHasher();
$user = $this->Users->patchEntity($user, $this->request->getData());
$user->password=$hasher->hash($user->password); //follow this
if ($this->Users->save($user)) {
}