CakePHP 2.4.1で簡単なAuthモジュールを試しているのですが、正しいユーザー名とパスワードを入力しても、上手く認証されません。
lang
1public function login() { 2 if ($this->request->is('post')) { 3 if ($this->Auth->login()) { 4 return $this->redirect($this->Auth->redirect()); 5 } 6 $this->Session->setFlash(__('ユーザー名またはパスワードが無効です。再度試してください')); 7 } 8}
AuthComponent APIによるとAuth->login()のパラメータが空もしくは指定されていない場合、ユーザーを特定するためにリクエストが使われます。
デバッグのクエリは下記のようなものを表示します
lang
1SELECT `User`.`id`, `User`.`username`, `User`.`password`, `User`.`role`, `User`.`created`, `User`.`modified` 2FROM `cake_dvdcatalog`.`users` AS `User` WHERE `User`.`username` = 'admin' LIMIT 1 3
下記が私のユーザーのモデルです。何か解決策があるなら教えてほしいです。
lang
1// app/Model/User.php 2App::uses('AuthComponent', 'Controller/Component'); 3 4class User extends AppModel { 5 6 public $validate = array( 7 'username' => array( 8 'required' => array( 9 'rule' => array('notEmpty'), 10 'message' => 'ユーザー名を入力してください' 11 ) 12 ), 13 'password' => array( 14 'required' => array( 15 'rule' => array('notEmpty'), 16 'message' => 'パスワードを入力してください' 17 ) 18 ), 19 'role' => array( 20 'valid' => array( 21 'rule' => array('inList', array('admin', 'author')), 22 'message' => 'Please enter a valid role', 23 'allowEmpty' => false 24 ) 25 ) 26 ); 27 28 public function beforeSave($options = array()) { 29 if (isset($this->data[$this->alias]['password'])) { 30 $this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']); 31 } 32 return true; 33 } 34}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。