是否可以(暂时?)禁用对Magento中oAuth的要求,并仍然通过REST API检索产品数据等?
所以基本上能够通过HTTP发出GET请求而不使用oAuth并仍然返回数据?
谢谢,
答案 0 :(得分:11)
临时禁用oAuth:
查看app / code / core / Mage / Api2 / Model / Auth.php下的Mage_Api2_Model_Auth模型
public function authenticate(Mage_Api2_Model_Request $request)
{
...
$authAdapter = Mage::getModel('api2/auth_adapter');
$userParamsObj = $authAdapter->getUserParams($request);
// Added code:
$userParamsObj->type = 'admin';
$userParamsObj->id = 1;
}
答案 1 :(得分:4)
我最近不得不在Magento的Oauth实施上挣扎,我设法通过禁用Oauth机制来完成我的测试......
如果您只是输入以下URL,Magento假定您以访客身份进行连接。 http://www.yourmagentopath.com/api/rest/products?limit=2(例如)
目前默认情况下,Guest角色无权查看任何信息。 这将返回403(访问被拒绝)。
请登录Magento Admin,Goto System-> Web Services-> REST - 角色 从列表中选择“访客”,然后单击框以允许访客帐户查看详细信息。
保存详细信息并从上面提供的链接刷新页面。您现在应该看到以XML格式显示的2个产品。
要查看所有产品,只需删除限制...
答案 2 :(得分:1)
可以在Magento中添加custom REST authentication adapter。例如,您可以使用 HMAC 方法来保护客户端和服务器之间的通信。
答案 3 :(得分:0)
关于restful webservices,我认为magento永远不会允许在没有OAUTH的情况下使用允许的方式公开其API。
我还计划在没有Oauth的情况下实现一个宁静的调用,它应该返回Json或我想要的HTML内容,而不需要任何额外的HTML,例如页眉,页脚等。
完成工作的一种简单方法是实现新的自定义模块。由于您希望模块的行为类似于一个宁静的Web服务,因此只需从新模块布局中删除所有元素(页眉,页脚,左右导航等,这会在输出中添加额外的不需要的内容)。
或者只是在控制器中打印结果,不要使用下面的代码来渲染布局
$this->loadLayout();
$this->renderLayout();