我注意到在 CakePHP 的 3.2 版本中,他们添加了对使用 bcrypt 散列的支持。我想利用这一点,但我似乎无法找到如何正确使用它。
在我的User
模型beforeSave()
方法中,我正在这样做:
if(isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = Security::hash($this->data[$this->alias]['password'], 'blowfish');
unset($this->data['User']['passwd']);
}
它成功地在数据库中为用户帐户保存了一个 bcrypt 哈希。但是,我不确定我打算如何登录用户。我的用户控制器具有以下登录操作:
public function login() {
if($this->request->is('post')) {
if($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash('Invalid username or password, try again.');
}
}
}
但它每次都说“无效的用户名或密码”,我确定这是正确的电子邮件/密码。我认为这是因为 AuthComponent 不知道它应该使用 bcrypt 但我不确定。
有什么建议么?