CakePHP 3只允许REST index.json和and.json(没有普通视图)与Auth一起使用

CakePHP 3只允许REST index.json和and.json(没有普通视图)与Auth一起使用,rest,authentication,cakephp-3.0,Rest,Authentication,Cakephp 3.0,我已经根据博客教程创建了博客,我想保护文章列表,但我希望它可以在REST中访问,我已经激活了json扩展 一切都很好。我可以添加和检索列表,但现在我想拒绝从web进行索引和添加,并且只能从.json访问public 我试过了 public function beforeFilter(Event $event) { parent::beforeFilter($event); $this->Auth->allow('index.json'); } 但这显然不起作

我已经根据博客教程创建了博客,我想保护文章列表,但我希望它可以在REST中访问,我已经激活了json扩展

一切都很好。我可以添加和检索列表,但现在我想拒绝从web进行索引和添加,并且只能从.json访问public

我试过了

    public function beforeFilter(Event $event)
{
    parent::beforeFilter($event);
    $this->Auth->allow('index.json');
}
但这显然不起作用。所有网页都像教程中一样受登录保护。Web服务应该可以访问Android应用程序(代码已经准备好并且可以使用)


谢谢大家!

当然,这不起作用,
allow()
方法需要有效的方法名,而这正是身份验证组件所关心的,方法/操作名,不管如何请求操作

您尝试执行的操作要求您检查请求的类型,并根据结果允许操作。可以使用
request::is()
检查请求类型

请参见

所以这可能很简单

if($this->request->is('json')){
$this->Auth->allow(['index','add']);
}

谢谢你,ndm,非常简单:)