【发布时间】:2020-08-28 00:49:49
【问题描述】:
我已经按照帮助说明和 Xero 设置了 Postman 以获取 ClientID 和 Client Secret。当我在 Postman 中点击 Request Token 时,会显示 Xero 登录屏幕,当我登录时,我没有看到 Xero OAuth 2.0 允许访问屏幕 - 它直接进入仪表板屏幕。
如何让它显示允许访问屏幕,以便 Xero 返回令牌?
【问题讨论】:
我已经按照帮助说明和 Xero 设置了 Postman 以获取 ClientID 和 Client Secret。当我在 Postman 中点击 Request Token 时,会显示 Xero 登录屏幕,当我登录时,我没有看到 Xero OAuth 2.0 允许访问屏幕 - 它直接进入仪表板屏幕。
如何让它显示允许访问屏幕,以便 Xero 返回令牌?
【问题讨论】:
当出现这样的错误时,很难在 Postman 中进行调试。我建议您改用oauth.tools。这个想法有点相似。首先,访问该网站并创建一个新环境:
如果你愿意,你可以给它起一个好听的名字,比如xero。在Authorization Endpoint 中填写https://login.xero.com/identity/connect/authorize,在Token Endpoint 中填写https://identity.xero.com/connect/token。
在Client 标签上,单击+ New client。然后,输入app found in the Xero dev portal 的Client ID。设置密码并打开Code Flow:
关闭该模式,然后在 Xero 开发门户中做一件非常重要的事情:对于 Xero 应用,确保重定向 URI 设置为 https://oauth.tools/callback/code:
然后,在 OAuth.tools 中,创建一个新流程:
选择Code Flow:
在环境下拉菜单中,确保选择了您创建的环境:
在Client ID 文本组合框中,选择您在环境中创建的组合框。在scope 列表框中键入offline_access。按回车键创建它。输入openid 并回车。点击Run按钮:
在 Xero 登录。此时,您可能会直接返回 oauth.tools,或者您可能会看到您想要的同意屏幕。如果您没有获得同意屏幕,那是因为 Xero 坚持了您的授权。换句话说,你已经授权了客户端,所以它不会要求你再做一次。要强制它,请从 prompt 下拉列表中选择 consent:
然后,再次点击Run,Xero 将始终向您显示同意。
如果您需要访问令牌,请在返回 OAuth.tools 后,点击第 3 步旁边的Redeem Code:
在右侧的结果窗格中,您将看到访问令牌、刷新令牌和 ID 令牌。
【讨论】: