我试图拒绝未经身份验证的用户访问所有页面,因为它在文档(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类正在很好地登录,但我无法拒绝所有页面。
答案 0 :(得分:0)
我修复了在自定义身份验证提供程序中添加正确方法的问题。 缺少的方法是getUser。文档中没有提到它,要么是由接口强制的,所以你应该定义这个方法以使授权工作。 您还应该使用Controller设置授权,如下所示:
onFirstInteractive