即使添加了所有必需的角色和权限,我也会在1.9中使用REST API获得权限被拒绝问题。
它为访客用户工作并获得JSON结果。
如果我启用了访客权限,我可以通过url api / rest / products?limit = 1接受客户而无需任何身份验证。 同时它使用oAuth来使用有效的管理员。 但是,如果我禁用了访客权限,则它不适用于有效的管理员用户,显示权限被拒绝的消息。
当我检查访问日志时,我可以看到如下
exception 'Mage_Api2_Exception' with message 'Access denied' in /var/www/html/app/code/core/Mage/Api2/Model/Server.php:217
Stack trace: #0 var/www/html/app/code/core/Mage/Api2/Model/Server.php(106): Mage_Api2_Model_Server->_allow(Object(Mage_Api2_Model_Request), Object(Mage_Api2_Model_Auth_User_Guest))
#1 /var/www/html/api.php(73): Mage_Api2_Model_Server->run()
是因为通过oAuth的每个API请求都以访客模式处理吗?
答案 0 :(得分:0)
您如何测试?您绝对确定禁用访客权限时确实在运行授权请求吗?
也许您可以在_allow
的类方法Mage_Api2_Model_Server
中进行一些逐步调试。