【发布时间】: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 成功,但无法连接到租户)让我们转向了不同的方向,并以解决方案。我已经概述了我们在答案中所做的事情。感谢您的意见!
-
很高兴它有帮助,即使它只是偶然的。