CakePHP 3:限制在没有登录的情况下访问整个控制器

CakePHP 3 : restrict access to whole controller without login

我有一个控制器 UserAddresses,只有登录的用户才能 add/edit/delete 他们的地址。

但由于 AppController.php 包含

public function beforeFilter(Event $event)
{
  $this->Auth->allow(['index', 'view', 'display', 'home']);
}

www.website.com/user-addresses/ 即使没有登录也可以访问。 我想限制 userAddresses 控制器的所有操作。

我怎样才能从控制器做到这一点。

How can I do it from controller.

例如,在您的 UserAddressesController class 中覆盖 beforeFilter(),并从允许的操作列表中删除可能的条目。

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

另见