我在magento 中创建了一个自定义rest api。 如果我通过此代码访问,它工作正常:
http://www.magentocommerce.com/api/rest/introduction.html
但是当我想使用这个网址访问它时:
主机/api/rest/datafeed/truedash_customers
这是给我一个错误:
403 访问被拒绝
谁能告诉我为什么会发生这种情况请帮忙......
1)快速而肮脏的修复: 在文件 /app/code/core/Mage/Api2/Model/Auth.php 中,更改以下值: DEFAULT_USER_TYPE = '访客' 到 DEFAULT_USER_TYPE = '管理员'。
在文件中 /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');
这样认证系统就不会被破坏。
2)正确且长期的修复: 使用 magento 覆盖机制覆盖这两个功能,以便根据 magento 标准获得更好的解决方案。这样核心文件就会完好无损。
快速而肮脏的修复:在文件
/app/code/core/Mage/Api2/Model/Auth.php
中,将 DEFAULT_USER_TYPE = 'guest'
的值更改为 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');
这样认证系统就不会被破坏。