Magento 2 API始终返回消费者无权访问%资源

时间:2016-06-17 14:56:22

标签: php rest magento magento2

我正在尝试使用Magento 2 rest API,但即使只是从命令行卷曲,我得到的唯一响应是Consumer is not authorized to access %resources

我设法通过

获取令牌
curl -X POST "http://magento.dev.blackorange.nl/index.php/rest/V1/integration/admin/token" \
-H "Content-Type:application/json" \
-d '{"username":"adminuser", "password":"adminpass"}'`

但是当我尝试

curl -X GET -H "Authorization: Bearer TOKEN" "http://magento.dev.blackorange.nl/rest/V1/products" 

(或任何其他端点)我收到了Consumer is not authorized to access %resources消息

我错过了某个地方的一步吗?

4 个答案:

答案 0 :(得分:1)

确保您使用的是Magento2管理员用户名密码而不是任何API用户名密码如果这不起作用,则为该用户分配适当的角色 尝试更改ROLE:ALL

要访问 GET / V1 /产品,您需要传递 searchCriteria 参数所需的参数。

首先你需要调用admin / token API 您从此处获得的令牌需要传递第二个API

使用来自第一次通话的令牌密钥替换 TOKEN

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.arquillian</groupId>
                <artifactId>arquillian-bom</artifactId>
                <version>1.1.11.Final</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

所有REST API参考:http://devdocs.magento.com/swagger/index.html#/

答案 1 :(得分:1)

尝试修剪标记值。 它得到空白,这使得它不正确。

答案 2 :(得分:0)

尝试使用POSTMAN获取令牌: http://your-domin/rest/V1/integration/admin/token

使用管理员用户名密码 例: 的 http://your-domin/rest/V1/integration/admin/token

设置Oauth:1.0与customer / token

相同

设置管理员登录详细信息

用户名:admin | 密码:admin123

使用管理令牌再次尝试未经授权的API。

注意:这不是一个好方法,因为对于客户应用程序而言,只有点击API才能安全,您可以使用admin / token与

进行尝试

答案 3 :(得分:0)

尝试更改Magento服务器上Apache使用的PHP处理程序。我从cgi更改为suphp,请求开始起作用。有趣的是,如Problem with Magento 2 REST authentication中所述,POST请求将始终有效,但GET请求将失败。我不知道为什么更改处理程序可以解决问题。祝你好运。