如何仅在CakePHP 2.1中使用后端授权?

时间:2012-08-26 15:50:38

标签: cakephp authorization cakephp-2.1

我想用CakePHP 2.1构建一个应用程序,用户只需要登录到后端(带有自定义前缀),而不是前端。

我知道可以使用$this->Auth->allow()按行动执行此操作,但我想基于prefix执行此操作。

1 个答案:

答案 0 :(得分:0)

要实现这一目标,您可以按照Authentification Tutorial中的“标准”步骤操作,只需在beforeFilter()中的AppController - 回调中添加一小段内容。

function beforeFilter() {
  if(isset($this->Auth)) {
    if(isset($this->params['admin']) && $this->params['admin']) {
      $this->Auth->allow('admin_login'); // allow backend login only
    } else {
      $this->Auth->allow(); // allow everything in frontend
    }
  }
}

这将允许用户执行应用程序中的所有操作,但前缀为admin的所有操作除外。允许的唯一操作是admin_login,它可能驻留在某种UsersController上,使后端用户可以登录。

如果使用多个前缀,请注意为每个需要验证的前缀定义此内容。