在omniauth初始化程序中应用其他oauth作用域

时间:2017-06-21 23:26:27

标签: ruby-on-rails oauth omniauth scopes coinbase-api

我正在尝试使用oauth应用coinbase钱包API来使用其发送功能。我已经能够连接到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元哈希所需的语法。

1 个答案:

答案 0 :(得分:0)

管理以使用以下初始化程序解决问题;

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