当对客户进行 GET/POST/PUT 时,有什么方法可以在 Magento 的 REST API 上禁用/不使用 oAuth 吗?

问题描述 投票:0回答:4

我是 Magento 新手。 是否可以(暂时?)禁用 Magento 中的 oAuth 要求并仍然检索客户数据。通过 REST API?

那么基本上能够在不使用 oAuth 的情况下通过 HTTP 发出 GET、PUT 请求?

网址:http://magento/api/rest/customers?limit=2

我收到访问被拒绝(403)错误。

注意:我能够阅读产品。

php magento oauth magento-rest-api
4个回答
0
投票

请尝试这个。也许它有效。

转到 Magento 管理面板,系统 -> Web 服务 -> REST 属性 -> 选择用户类型客户,然后选择资源访问权限为 ALL 并保存。 现在检查:http://magento/api/rest/customers?limit=2


0
投票

您可以转到 app/code/core/Mage/Api2/Model/Auth.php 并将 const DEFAULT_USER_TYPE = 'guest' 更改为 const DEFAULT_USER_TYPE = 'admin' 并转到 app/code/core/Mage/ Api2/Model/Auth/Adapter.php 并将 return (object) array('type' => Mage_Api2_Model_Auth::DEFAULT_USER_TYPE, 'id' => null) 更改为 return (object) array('type' => Mage_Api2_Model_Auth ::DEFAULT_USER_TYPE, 'id' => 1).

这会将默认使用者设置为管理员,您将能够以管理员权限访问所有 API。您还可以将其更改为“客户”并在 Adapter.php 中提供任何客户 ID。


0
投票

您需要授予访客访问客户资源的权限。

还没有尝试过,但我建议你扩展模块

  • mage/customeretc/api2model/api2/customer/rest/ 复制到本地模块,这样就不会修改核心数据。

  • 然后修改 etc/api2 以便您可以通过访客调用进行访问并添加属性权限

  • api2/customer/rest 上添加所需的模型,以便 guest 可以处理回调,我猜只需复制 admin,重命名为 guest 并重命名 v1 中的类名就可以了。


0
投票

您可以在 Magento 中为 REST API 实现自己的身份验证适配器,而不是 oAuth。您可以在这篇文章中找到更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.