我正在使用CakePHP开发一个项目,我遇到了一些问题。当未经身份验证的用户尝试访问受限页面时,会将其重定向到登录页面,这是使用Auth组件对CakePHP进行安全管理的正常行为。
但是,一旦用户登录应用程序,它就会将用户重定向到错误的URL。 I.E.应用程序将用户重定向到以下内容,而不是将用户重定向到它之前尝试访问的URL:localhost / myApplication / folder / myApplication / folder / urlUserTriedToAccess。
出于某种原因,项目的路径已经写了两次,我不知道为什么。我希望有人能给我一些可能发生的事情。非常感谢!
这是我在AppController中设置Auth组件值的代码:
public $components = array(
'DebugKit.Toolbar',
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'users', 'action' => 'home'),
'logoutRedirect' => array('controller' => 'users', 'action' => 'home'),
'authError' => "Debes iniciar sesión para entrar en esta página",
'authorize' => array('Controller') // Added this line
));
这是UsersController中Login操作中的代码:
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash('Invalid user', 'default', array('class'=>'alert alert-error'));
}
}
}
答案 0 :(得分:0)
登录后,您可以尝试类似下面的代码,以验证重定向是否正常工作:
$this->redirect(array('controller'=>'anyRestrictedController','action'=>'index'));
另外,尝试使用redirectUrl()而不是redirect()。