我已经按照帮助说明和Xero设置了Postman,以获取ClientID和Client Secret。当我在Postman中点击“请求令牌”时,显示Xero登录屏幕,而当我登录时,我没有看到Xero OAuth 2.0允许访问屏幕-它直接进入“仪表板”屏幕。
如何使其显示“允许访问”屏幕,以便Xero返回令牌?
答案 0 :(得分:0)
当这样出错时,很难在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
文本组合框中,选择您在环境中创建的组合框。在offline_access
列表框中键入scope
。按Enter即可创建它。输入openid
并按Enter。点击Run
按钮:
在Xero登录。此时,您可以直接回到oauth.tools,或者您可能会看到想要的同意屏幕。如果您没有获得同意屏幕,那是因为Xero坚持了您的授权。换句话说,您已经授权了客户端,因此它不会要求您再次执行该操作。要强制它,请从consent
下拉列表中选择prompt
:
然后,再次点击Run
,Xero将始终向您显示同意。
如果需要访问令牌,请返回OAuth.tools,然后点击第3步旁边的Redeem Code
。
在右侧的结果窗格中,您将看到访问令牌,刷新令牌和ID令牌。