我無法在CakePHP中驗證Auth組件的工作方式。我正在使用2.1cakePHP身份驗證問題
我的登錄工作正常,根據我的理解,我可以在appController中設置默認組件,如下所示。
// App controller:
public $components = array(
'Session',
'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
),
'authError' => "Your username and password is incorrect, please try again.",
'authenticate' => array(
'Form' => array(
'scope' => array('User.user_status_id' => 1)
)
),
'redirect' => array("controller" => "users", "action" => "profile"),
'loginRedirect' => array("controller" => "users", "action" => "profile")
)
);
public function beforeFilter() {
$this->Auth->allow("home");
if($this->Auth->loggedIn() == true) {
$this->set("user_name",$this->Auth->user("first_name")." ".$this->Auth->user("last_name"));
$this->set("loggedIn",true);
if($this->Auth->user("user_type_id") == 5) {
$this->set("navigation","navigation_admin");
} else {
$this->set("navigation","navigation_loggedin");
}
} else {
$this->set("loggedIn",false);
$this->set("navigation","navigation_notloggedin");
}
}
家位於/app/view/home.ctp,但是,我不能沒有被記錄在接下來訪問的網頁我有2個不同的用戶級別,正常和管理員。如果您是管理員或非管理員,我想限制控制器中的某些操作。
在我UserController中我有例如:
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow("login");
if($this->Auth->user("user_type_id") != 5) {
$this->Auth->allow("login","profile");
}
}
但不論用戶類型的,每個人都可以查看的行動。
在我的網頁控制器我也有以下幾點:
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow("*");
}
但我必須先登錄才能查看任何網頁。
我確信自己做錯了什麼,但是我無法將自己的頭圍繞在什麼幫助下?
app/view/home.ctp?你的意思是app/view/pages/home.ctp? – tigrang