CakePHP 3 仅允许 REST index.json 和 and.json(无普通视图)与 Auth

CakePHP 3 allow only REST index.json and and.json (no normal views) with Auth

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

一切正常。我可以添加和检索列表,但现在我想拒绝索引并从 Web 添加并且只能从 .json 到 public.

访问

我试过

    public function beforeFilter(Event $event)
{
    parent::beforeFilter($event);
    $this->Auth->allow('index.json');
}

但这显然行不通。所有网页都像教程中一样受登录保护。 Android 应用程序应该可以访问 Web 服务(代码已准备就绪并且可以运行)。

谢谢!

当然那是行不通的,allow() 方法需要有效的方法名称,这就是身份验证组件关心的所有内容,method/action 名称,操作如何并不重要请求。

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

检查请求类型

Cookbook > Request & Response Objects > Checking Request Conditions

所以它可能和

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