【问题标题】:coinbase-node: Scopes don't match current API versioncoinbase-node:范围与当前 API 版本不匹配
【发布时间】:2025-12-10 05:00:01
【问题描述】:

我正在建立一个网站,用户通过 coinbase 进行身份验证,然后让网站通过与 Auth2 的连接代表用户行事。当我使用 Auth2 连接时会出现问题。 https://github.com/coinbase/coinbase-node

var client = new Client({'accessToken': accessToken, 'refreshToken':refreshToken});

我得到的错误是:

InvalidScope: Scopes don't match current API version.
at handleHttpError (/home/rasmus/Documents/bitlounge/node_modules/coinbase/lib/errorHandler.js:46:15)
at Request.onGet [as _callback] (/home/rasmus/Documents/bitlounge/node_modules/coinbase/lib/ClientBase.js:155:10)
at Request.self.callback (/home/rasmus/Documents/bitlounge/node_modules/request/request.js:187:22)
at emitTwo (events.js:126:13)
at Request.emit (events.js:214:7)
at Request.<anonymous> (/home/rasmus/Documents/bitlounge/node_modules/request/request.js:1044:10)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at IncomingMessage.<anonymous> (/home/rasmus/Documents/bitlounge/node_modules/request/request.js:965:12)
at emitNone (events.js:111:20)

我尝试使用'wallets:accounts:read' 范围,但没有成功。

var client = new Client({'accessToken': user.accessToken, 'refreshToken': user.refreshToken, "scope": ["wallet:accounts:read"]});

【问题讨论】:

  • 我遇到了同样的错误信息。确保您没有选择任何 API v1 范围。如果您从两个版本中选择范围,库似乎将无法工作。
  • 我正在使用 passport-coinbase 对范围为 ['user'] 的用户进行身份验证。我猜那是 API v1,我也应该改变它吗?
  • 我正在使用 coinbase-python。我不知道护照币库。但我想这也适用。据我了解,当前版本的库同时适用于 v1 和 v2,只是不能同时使用。您必须选择 v1 或 v2。 v2 具有 v1 的所有作用域,甚至更多。所以我建议去 API 设置并取消选中所有 v1 范围,检查 v2 上的正确范围,看看会发生什么。

标签: node.js oauth-2.0 coinbase-api


【解决方案1】:

Coinbase API 不支持一个密钥的多版本访问,您应该为您的密钥禁用 v1 API 并仅保留 v2。如果您还需要 v1 API,您可以创建单独的 API 密钥并仅启用 v1 API。

【讨论】: