我正在尝试编写一些简单的功能来区分我正在编写的 CakePHP 应用程序中的管理员和普通用户。我已将users
表格更改为有一个名为admin
or0
的字段1
。
在AppController.php
我有一个$components
这样的数组设置:
public $components = array(
'Session',
'Auth' => array(
'authenticate' => array(
'Blowfish' => array(
'fields' => array('username' => 'email')
)
),
'loginRedirect' => array('controller' => 'pages', 'action' => 'home'),
'logoutRedirect' => array('controller' => 'pages', 'action' => 'home'),
'authorize' => array('Controller')
)
);
还有这个方法:
public function isAuthorized($user) {
// Check if admin
if(isset($this->params['admin']) && $this->Auth->user('admin') == 1) {
echo "admin";
return true;
}
// Default deny
return false;
}
当我加载页面时,我收到此错误:(net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.
. 出于某种原因,上面的代码导致无限重定向,我不知道为什么。
此外,我还设置了一个路由前缀,admin
以便管理员可以访问诸如/admin/users/edit
. 当我转到那个页面时,我没有得到无限的重定向,并且admin
会echo
像它应该的那样被淘汰。
我已经阅读了在线教程并阅读了 Cake 文档,但它们似乎都以无限重定向结束,我该如何设置它以便我可以区分管理员和普通用户,并拒绝/允许访问每个用户的某些操作角色?