0

在使用 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');
}

但这似乎真的是静态的。

4

1 回答 1

0

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

// 在 PagesController.cpp 中

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

某种类似的:
CakePHP Auth 组件重定向问题

于 2013-01-11T07:45:51.913 回答