调用Xero getClientCredentialsToken返回错误权限范围求助
Xero-node Client Credentials模式下Token权限不符导致403的解决方案
首先修正代码里的拼写错误:你写的clientSecret: CLIENT_SECTRET,里的变量名少了一个字母E,应该是CLIENT_SECRET。这个错误会导致认证时使用错误的密钥,很大概率是你获取到错误权限Token的直接原因。
接下来,针对Xero的Custom Connections(Client Credentials模式),权限的生效逻辑不是完全由代码中的scopes参数决定的:
- 登录Xero开发者后台,找到你的应用,进入「Custom Connections」页面
- 选中当前使用的连接,查看「Permissions」列表,确认已添加
accounting.transactions和accounting.contacts权限 - 若未添加,点击「Add permission」添加这两项权限,保存后重新获取Token
补充说明:xero-node在Client Credentials模式下,代码中的scopes参数主要用于验证后台配置的权限是否覆盖这些范围,而非主动请求权限。所以即便代码里指定了scopes,后台没配置对应的权限,Token里也不会包含这些权限。
最后,获取Token后可以用JWT解码工具查看Payload中的scp字段,确认是否包含所需权限,再调用Accounting相关接口即可。
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

