条带连接身份验证失败 - invalid_client:没有此类API密钥:承载

时间:2018-05-28 12:38:26

标签: ruby-on-rails authentication stripe-connect

我正在使用OmniAuth-StripeConnect Gem处理Ruby on Rails,每当我尝试连接到Stripe Connect API时,我都会在身份验证中遇到此问题,并且重定向'我对Omniauth回调控制器的失败方法:

E, [2018-05-28T13:41:50.435158 #58778] ERROR -- omniauth (stripe_connect) Authentication failure! invalid_credentials: OAuth2::Error, invalid_client: No such API key: Bearer
{
  "error": "invalid_client",
  "error_description": "No such API key: Bearer"
}

我在文档中发现invalid_client的错误意味着其中一个:
https://stripe.com/docs/connect/oauth-reference#post-deauthorize-error-codes

  • client_id不属于您
  • stripe_user_id不存在或未连接到您的应用
  • API密钥模式(实时或测试模式)与client_id模式
  • 不匹配

但我加倍检查,但这些都没有。

有没有人有想法?

3 个答案:

答案 0 :(得分:0)

我认为您正在使用带有测试API密钥的live card进行测试?

答案 1 :(得分:0)

一个老问题,我知道,但是我今天也遇到了这个错误,将来可能会对其他人有所帮助。这个仓库/宝石的所有者说,无论如何,他不再“真正地支持”它。该答案假设您正在尝试让用户在Stripe上创建其帐户,并将身份验证令牌传递回您的控制器。

我决定完全不使用宝石。在“撤消”安装说明之后,我发现将stripe_connect下的OmniauthCallbacksController方法仍然可以按您期望的方式工作-您只是没有得到上述错误。

根据Stripe Connect文档(https://stripe.com/docs/connect/standard-accounts#redirected),如果您没有收到错误代码,则说明请求成功。您应该在响应中收到授权码,该授权码可用于通过其API访问该用户的Stripe帐户。在令牌过期之前,您只有五分钟的时间可以使用该令牌。我想如果您错过了它,您将需要重新开始整个过程​​。

希望这会有所帮助。

答案 2 :(得分:0)

对于其他可能会发现此问题的人,当我遇到此问题时,这是因为我没有正确设置omniauth初始化程序来包括所需的条键:

我已经设置了该文件:

# config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :stripe_connect, ENV['STRIPE_CONNECT_CLIENT_ID'], ENV['STRIPE_CLIENT_SECRET']
end

但是忘记将密钥放入我的.env文件中。

确保使用正确的密钥设置环境。