我想用CakePHP 2.1构建一个应用程序,用户只需要登录到后端(带有自定义前缀),而不是前端。
我知道可以使用$this->Auth->allow()
按行动执行此操作,但我想基于prefix执行此操作。
答案 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上,使后端用户可以登录。
如果使用多个前缀,请注意为每个需要验证的前缀定义此内容。