我無法使用AuthComponent登錄任何用戶。 用戶表的名字是用戶,有一些重要的字段,例如user_id,user_password,密碼字段沒有散列。CakePHP 2驗證組件
這是我的AppController
class AppController extends Controller {
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'users', 'action' => 'home'),
'authError' => 'You cannot view this page',
'authorize' => array('controller')
)
);
public function isAuthorize($user) {
return true;
}
public function beforeFilter() {
$this->Auth->allow('home');
}
}
這是我UsersController
class UsersController extends AppController {
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash('Cannot login in');
}
}
}
}
這是我的用戶模型。
class User extends AppModel {
public $name = 'User';
public $primaryKey = 'user_id';
public $belongsTo = 'Group';
}
這是我的看法
<h2>Login</h2>
<?php
echo $this->Form->create();
echo $this->Form->input('user_id', array('label' => 'User ID', 'type' => 'text'));
echo $this->Form->input('user_password', array('label' => 'Password', 'type' => 'password'));
echo $this->Form->end('Login');
?>
當我輸入修正USER_ID,然後按下密碼登錄按鈕,我得到的消息,從我無法登錄的UsersController。這裏出了什麼問題?
另外,我真的不明白AuthComponent的概念:login(),它是如何工作的,檢查user_id和密碼數據庫,如何知道哪個字段包含user_id,哪個包含密碼???
請幫忙。 謝謝。 Kongthap
請按照本書中的教程進行操作,然後根據您的需求進行更改。然後你就會明白它如何更好地工作。 – Dave 2012-08-11 15:38:13