在 omniauth 初始化器中应用额外的 oauth 范围

Applying additional oauth scopes in an omniauth initializer

我正在尝试将 coinbase 钱包 API 与 oauth 一起使用,以使用其发送功能。我已经能够连接到 API 并使用它的端点,但是每当我尝试使用发送功能时,都会抛出错误 Invalid amount for meta[send_limit_amount]。我的 omniauth 初始值设定项如下所示:

provider :coinbase, , ENV['CLIENT_ID'], ENV['CLIENT_SECRET'], 
scope: 'wallet:user:read wallet:user:email wallet:accounts:read wallet:transactions:send'

这个错误的原因是,为了使用发送功能,coinbase 需要额外的参数meta[send_limit_amount]。我应该在哪里以及如何应用这个额外的范围?

更新:所以我取得了一些进展,我能够将一个元作用域附加到我的初始化程序,这似乎是固定的(如我打印出 auth_info 时所示)。这是我的初始值设定项的当前状态:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :coinbase, ENV['CLIENT_ID'], ENV['CLIENT_SECRET'], scope: 'wallet:user:read wallet:user:email wallet:accounts:read ', :meta => {'send_limit_currency' => 'BTC'}
end

# wallet:transactions:send
# :meta => {'send_limit_amount' => '0.0001'}

现在的问题是我似乎无法理解将 send_limit_amount 属性 添加到 oauth 元哈希所需的语法。

设法使用以下初始化程序解决了问题;

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :coinbase, ENV['CLIENT_ID'], ENV['CLIENT_SECRET'],
  scope: 'wallet:user:read wallet:user:email wallet:accounts:read wallet:transactions:send',
  :meta => {'send_limit_amount' => 1}
end

现在,我需要禁用双因素身份验证或确定如何Re-play the request with CB-2FA-Token header