CakePHP は 2.4 AuthComponent について詳しく説明していないと思います。2.4 にはハッシュ (bcrypt) の新しいアルゴリズムがあるため、CookBook で明確にする必要があります。多くの人がこの問題を抱えていることがわかりました。SQL ダンプが表示された場合、AuthComponent はパスワードをチェックしません。ここに私のコード:
//UsersController
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'users', 'action' => 'home'),
'logoutRedirect' => array('controller' => 'users', 'action' => 'logout')
)
);
public function login(){
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirectUrl());
} else {
$this->Session->setFlash(__('Username or password is incorrect'), 'default', array());
}
}
}
//UserModel
class UserModel extends AppModel{
}
//Login.ctp
echo $this->Form->create('User');
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->end('Login');
SQL ダンプ:
SELECT User.id, User.username, User.password, User.pass_hint, User.joined FROM
oes.users AS User WHERE User.username = 'guest' LIMIT 1
ログイン資格情報が正しいかどうかに関係なく、$this->Auth->login()
返されないことがわかりました。true
しかし、AuthComponent を使用してログインを成功させたいのです。
前もって感謝します...