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を使うべきだと知らないからだと思いますが、よくわかりません。
助言がありますか?