2012-02-22 91 views
0

我在AppControler一些代碼:: beforeFilter() CakePHP的2.0驗證不重定向到用戶/密碼

$this->Auth->authorize  = array('Actions' => array('actionPath' => 'controllers')); 
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login'); 
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login'); 

但驗證不重定向我的用戶/登錄時,我正在努力在瀏覽器中加載非公開操作。相反,它會將我重定向到「/」。我做錯了什麼?

回答

1

這可能是因爲您尚未授予用戶控制器中登錄操作的權限。這增加了用戶控制器的頂部:

function beforeFilter(){ 
    parent::beforeFilter(); 
    $this->Auth->allow('login'); 
} 

作爲一個側面說明,在loginAction已經默認爲/用戶/登錄。 logoutRedirect也是如此。嘗試刪除它們,因爲它們並不是真正需要的,因爲您已經想將其移至默認位置。

UPDATE

已包含在AppController中的頂部的組成部分?

public $components = array('Auth'); 

另外要確認的是,你是不是已經登錄。如果您已經登錄,但沒有獲准特定的動作控制器內用於登錄的用戶,它可以重定向爲好。

+0

我已經在UsersController中用$ this-> Auth-> allow('login')beforeFilter。當我去'用戶/登錄'時,我看到登錄頁面。 – Igor 2012-02-22 20:35:27

+0

看到我上面的更新。 – 2012-02-23 03:31:12