默认拒绝所有操作

时间:2015-05-18 15:14:50

标签: php cakephp cakephp-3.0

我试图拒绝未经身份验证的用户访问所有页面,因为它在文档(http://book.cakephp.org/3.0/en/controllers/components/authentication.html#making-actions-require-authorization)中有所解释,所以我把它放在我的AppController.php中:

public function initialize()
{
    parent::initialize();
    $this->loadComponent('Auth', [
        'loginAction' => [
            'controller' => 'AuthController',
            'action' => 'login'
        ],
        'authenticate' => [
            'OAuth2Client.OAuth2'
        ]
    ]);
}

public function beforeFilter(Event $event)
{
    parent::beforeFilter($event);
    $this->Auth->deny();
}

没有任何反应。未经授权的用户仍可以查看所有页面而无需重定向。 我也尝试过授权' => '控制器'对于Auth组件,没有任何变化。 Authenticate类正在很好地登录,但我无法拒绝所有页面。

1 个答案:

答案 0 :(得分:0)

我修复了在自定义身份验证提供程序中添加正确方法的问题。 缺少的方法是getUser。文档中没有提到它,要么是由接口强制的,所以你应该定义这个方法以使授权工作。 您还应该使用Controller设置授权,如下所示:

onFirstInteractive