2012-02-22 67 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