我正在尝试使用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
消息
我错过了某个地方的一步吗?
答案 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请求将失败。我不知道为什么更改处理程序可以解决问题。祝你好运。