5

来自 Magento wiki:

http://www.magentocommerce.com/api/rest/authentication/oauth_authentication.html#OAuthAuthentication-OAuthProcess

获取 API 令牌时,您首先在以下位置获取未经授权的请求令牌:

www.mystore.com/oauth/initiate

但是,我的代码不起作用,当我在浏览器中浏览到上述 url 时,我得到一个 404。

我将商店代码附加到基本 url(例如 www.mystore.com/en/)我不知道这是否会改变任何东西。

4

5 回答 5

14

Magento Wiki 有一个错字:

$adminAuthorizationUrl = 'http://yourhost/admin/oAuth_authorize';

应该:

$adminAuthorizationUrl = 'http://yourhost/admin/oauth_authorize';
于 2015-06-30T17:15:51.610 回答
6

我一天中的大部分时间都在为此苦苦挣扎,所以这是一个迟来的贡献,以防它对任何人有所帮助:

Magento 记录的授权 URL admin/oauth_authorize 假定您没有使用自定义 URL 进行管理员访问。“admin”是访问 Magento 仪表板的标准 URL,但许多人出于安全考虑对其进行了更改。如果您已将管理员 URL 更改为“admin”以外的其他内容,请改用它。

IOW 如果您在https://yoursite.com/foo访问您的 Magento 仪表板,那么您的授权 URL 是 foo/oauth_authorize。

于 2016-12-22T21:10:14.177 回答
5

我也遇到了问题,以下请求返回了 404 http 状态:

http://yourmagentostore.com/oauth/initiate

解决方案非常简单:如果您在同一个域上使用多个商店和/或商店视图,请不要忘记添加映射到商店视图的 url 路径。例如

http://yourmagentostore.com/<my-store-view-path>/oauth/initiate
于 2014-11-18T15:01:33.433 回答
4

我只是有同样的问题。类似的问题不多,也没有解决办法。这很奇怪,因为这似乎是缺少的配置选项“global/request/direct_front_name”,它没有在 Core/Oauth 模块中设置。如果没有这个重要的设置,所有的教程怎么能工作!?

如果没有“oauth”设置,每次调用 /oauth/[controller] 都会导致解析“noRouteAction”(参见 Mage_Core_Controller_Request_Http::setPathInfo() 和 Mage_Core_Controller_Request_Http::isDirectAccessFrontendName($storeCode)),而不是默认的 indexAction。

因此,解决方案是在本地配置或自己的扩展中设置此设置,如下所示

<?xml version="1.0"?>
<config>
  [...]
  <global>
    [...] 
    <request>
        [...] 
        <direct_front_name>
            <oauth/>
        </direct_front_name>
    </request>
  </global>
</config>

之后,您至少可以最终获得令牌。我现在正在检查进一步的过程。

于 2013-06-04T10:44:09.477 回答
0

有一个微妙之处,别忘了 http:// 所以你打电话给商店应该是

http://yourmagentostore.com/oauth/initiate

还有更多关于 REST 服务设置的内容,然后在您发布的链接上,它只是一个概述。在您真正获得休息响应之前,商店中有大量配置,当用户未被识别、未经授权或没有适当的 ACL 权限时,您将获得 404 或 500 响应。我想这可以阻止黑客,但要排除故障是一种负担。我一直在走这条路,虽然我使用的是自动化工具,但商店的设置和故障排除是一样的。

看看我的博客,我会用 Magento REST API 的冒险来保持最新状态
干杯!
Rich Borek
http://magento-simplified.blogspot.com

于 2013-06-14T16:15:12.007 回答