【问题标题】:Getting 401 error on Megento 2.1.10 using access token with an intergration userMagento 2.1.10 与集成用户一起使用访问令牌时出现 401 错误
【发布时间】:2019-06-20 14:24:04
【问题描述】:

我是第 3 方开发人员,尝试通过访问令牌/集成/REST 方法更新库存数量,我遇到了 401 错误。

我正在使用 SoapUI 进行测试,并且还通过我正在开发的应用程序进行测试,我得到了同样的错误。

VB 代码

Dim Access_Token = "mXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX4"
Dim WebClient = New WebClient() 
WebClient.Headers(HttpRequestHeader.ContentType) = "application/json"
WebClient.Headers(HttpRequestHeader.Authorization) = "Authorization Bearer " & Access_Token
Dim Response As String
Response = WebClient.UploadString("http://www.XXXX.com/rest/V1/products/MXXXP/stockItems/1", "Put", "{""stockItem"":{""qty"":100}}")

我已经设置了集成,授予它对所有人的访问权限并激活它以获取访问令牌。

完整的错误是:

{"message":"Consumer is not authorized to access %resources","parameters":{"resources":"Magento_CatalogInventory::cataloginventory"}}

任何帮助都将不胜感激。 谢谢, 理查德。

【问题讨论】:

  • 由于无法从 Web 开发人员或主机获得任何反馈,因此我在 AWS 上创建了自己的 Magento 站点,并且能够使用 SoapUI 更新产品。对于 VBA,我将 auth 标头更新为 WebClient.Headers.Add("Authorization", "Bearer 6XXXXXXXXXXXXXXXXXXXXXXXXXXXd") 仍然无法在客户端站点上工作!

标签: vb.net rest api magento soapui


【解决方案1】:

在 Magento 中,您的用户角色需要有权访问该模块。您尝试进行身份验证的用户似乎无权访问目录库存。请登录 Magento 管理员,转到系统->权限->所有用户。在这里检查您的用户的角色是什么。然后转到系统->权限->用户角色->打开您的用户角色。选中“目录”复选框。现在为用户获取新的身份验证令牌,然后使用这个新令牌进行进一步的 API 调用。

【讨论】:

  • 谢谢,根据我的帖子,我已授予“所有人访问权限”以确保我不会被阻止。我听说在共享托管环境中,我正在尝试与开发人员/托管服务提供商合作以找出可能的附加块。任何其他想法让我知道:)
  • 此外,集成不是用户,当“激活”时提供访问令牌,可根据devdocs.magento.com/guides/v2.3/get-started/authentication/… 和集成令牌用于 API 查询
  • 您是否尝试过使用用户帐户获取身份验证令牌?至少看到这个作品。然后我们就可以找出它的原因了。
  • 嗨,阿卜杜勒,感谢您的评论。我已经用两个可以访问所有资源的管理员用户在代码和 SoapUI 中进行了测试。获得了两者的访问令牌,然后将其用作访问上述资源的承载,并返回相同的错误 '{ "message": "Consumer is not authorized to access %resources", "parameters": {"resources": "Magento_CatalogInventory: :cataloginventory"} }'
猜你喜欢
  • 1970-01-01
  • 2014-02-15
  • 2019-08-24
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多