默认拒绝所有操作
Deny all actions by default
我正在尝试拒绝未经身份验证的用户访问所有页面,如文档中所述 (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();
}
然后什么也没发生。未经授权的用户仍然可以在不被重定向的情况下看到所有页面。
我还尝试使用 'authorized' => 'controller' 作为 Auth 组件,但没有任何变化。
Authenticate class 登录正常,但我无法实现拒绝所有页面。
我解决了在我的自定义身份验证提供程序上添加正确方法的问题。
缺少的方法是 getUser。它没有在文档中提及,要么是由接口强制执行的,因此您应该定义此方法以使授权有效。
您还应该按如下方式设置授权控制器:
$this->loadComponent('Auth', [
'authorize' => ['Controller']
]);
我正在尝试拒绝未经身份验证的用户访问所有页面,如文档中所述 (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();
}
然后什么也没发生。未经授权的用户仍然可以在不被重定向的情况下看到所有页面。 我还尝试使用 'authorized' => 'controller' 作为 Auth 组件,但没有任何变化。 Authenticate class 登录正常,但我无法实现拒绝所有页面。
我解决了在我的自定义身份验证提供程序上添加正确方法的问题。 缺少的方法是 getUser。它没有在文档中提及,要么是由接口强制执行的,因此您应该定义此方法以使授权有效。 您还应该按如下方式设置授权控制器:
$this->loadComponent('Auth', [
'authorize' => ['Controller']
]);