我在大脑新的Cakephp安装中使用插件“CakeDC / Users”。 我有两个控制器:PagesController.php,CardsController.php。 Pages有1个动作(Beta,它是主页),还有两个动作(索引和单个)。
以下是bootstrap中的设置:
Configure::write('Users.config', ['users']);
Plugin::load('CakeDC/Users', ['routes' => true, 'bootstrap' => true]);
config / users.php中的插件配置:
return [
'Users' => [
'Email' => [
'validate' => false
]
],
'Auth' => [
'loginAction' => [
'plugin' => null,
'controller' => 'Members',
'action' => 'login',
'prefix' => null
],
'logoutAction' => [
'plugin' => null,
'controller' => 'Members',
'action' => 'logout',
'prefix' => null
],
'authenticate' => [
'all' => [
'finder' => 'auth',
],
'CakeDC/Users.ApiKey',
'CakeDC/Users.RememberMe',
'Form',
],
'authorize' => [
//'CakeDC/Users.Superuser',
//'CakeDC/Users.SimpleRbac',
],
],
];
我只配置了一条路线:
$routes->connect('/', ['controller' => 'Pages', 'action' => 'Beta', 'home']);
这是我的AppController.php:
public function initialize()
{
parent::initialize();
$this->loadComponent('Flash');
$this->loadComponent('CakeDC/Users.UsersAuth');
}
主页是允许的:
$this->Auth->allow('beta');
未登录时,我只能访问/ pages / beta,这没关系。我可以使用插件注册,登录和注销,这方面没问题。
一旦我登录,我就无法访问除主页之外的任何其他页面。 如果我到/ cards / index,或/ cards / single,我总是会重定向到主页。如果我禁用了插件,页面访问就可以了。
我已经坚持了一段时间了,有什么帮助吗? 谢谢, 最诚挚的问候
答案 0 :(得分:3)
没关系,我已经取代了:
'authorize' => [
//'CakeDC/Users.Superuser',
//'CakeDC/Users.SimpleRbac',
],
通过:
'authorize' => false,
默认情况下,使用的插件会使用某个组件进行授权,因此,如果您不打算使用该插件,则可以设置" false"确保你没有问题。或者您必须通过设置良好的设置来设置授权的控制器和操作。
谢谢,