【问题标题】:403 Error received from Xero API on request despite valid credentials尽管凭据有效,但应请求从 Xero API 收到 403 错误
【发布时间】:2021-04-30 01:49:17
【问题描述】:

我们遇到了一个集成客户的问题,该客户无法使用 oauth2 系统为其三个租户中的两个进行同步。其中一个正在正确同步且没有问题,但另外两个返回以下内容:

[403] Client error: GET https://api.xero.com/api.xro/2.0/Accounts resulted in a 403 Forbidden response:
{"Type":null,"Title":"Forbidden","Status":403,"Detail":"AuthenticationUnsuccessful" (truncated...)

最初我们认为这是一个简单的身份验证问题,但是他们的访问令牌能够被刷新而不会出错。所有三个租户都具有相同的范围设置:

"scope": [
    "email",
    "profile",
    "openid",
    "accounting.settings",
    "accounting.transactions",
    "accounting.contacts",
    "offline_access"
  ]

我可以确认他们的租户 ID 已正确传递给 SDK 方法(在本例中为getAccounts)。断开连接并重新连接没有帮助。

这似乎是一个相当普遍的问题,但我找到的解决方案都不适用于我们的案例。无论如何,我已经知道了。

【问题讨论】:

  • 嗯,这些范围和我的一样,所以应该与它们无关。您是否绝对 100% 确定租户 ID 是正确的?我最近在连接到我的新试用帐户时遇到了各种麻烦,因为我的 VB 代码试图使用之前试用中的旧租户。我刷新令牌没有问题,当我实际尝试访问任何其他端点时它就崩溃了。
  • @droopsnoot 租户 ID 是正确的,但是您确认您设法看到了相同的内容(通过 oauth 成功,但无法连接到租户)让我们转向了不同的方向,并以解决方案。我已经概述了我们在答案中所做的事情。感谢您的意见!
  • 很高兴它有帮助,即使它只是偶然的。

标签: php oauth-2.0 xero-api


【解决方案1】:

所以我们设法解决了这个问题。事实证明,用户从他们这边禁用了我们的集成(Xero 提供了从 Xero 内部撤销授权的选项),使他们看起来仍然与我们连接,但不再有权使用这两个租户。

需要注意的一点(这引起了一些混乱)是使用 OAuth 的访问/刷新令牌身份验证与 Xero 的逐个租户授权是分开的,这使我们能够在无法的情况下继续刷新访问>使用该访问权限。

【讨论】:

    猜你喜欢
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多