CakePHP:重定向用户远离/如果他们经过身份验证

时间:2013-01-11 07:43:03

标签: cakephp authentication

在使用AuthComponent的CakePHP 2.2上,如果用户已经过身份验证,那么将用户从“/”重定向到“/ users”的最佳方法是什么?我的所有搜索都刚刚显示了有关AuthComponent的loginRedirect和相关信息。我读了一篇详细说明改变路线的帖子(在1.x中),但我不确定这是否仍然是最好的方法。我也可以插入

if($path[0] == 'home' && $this->Session->check('Auth.User')){
    $this->redirect('/users/');
}
在PageController :: display()中,但同样不确定这是否是最理想的方法

此应用程序的索引页面只是一个要求用户注册或登录的页面,因此对已登录的成员来说并不重要。

编辑: 在重新访问beforeFilter()方法之后,我想出了

public function beforeFilter() {
    $this->Auth->allow('*');

    if($this->request->params['pass'][0] == 'home' && $this->Session->check('Auth.User'))
        $this->redirect('/users');
}

但这似乎是静态的。

1 个答案:

答案 0 :(得分:0)

正确的方法是从控制器的beforeFilter方法重定向用户。从.ctp文件重定向并不好。

//在PagesController.cpp中

beforeFilter() {
  if($path[0] == 'home' && $this->Session->check('Auth.User')){
      $this->redirect('/users/');
  }
}

某种相似:
CakePHP Auth component redirect issue