Stripe Connect 身份验证失败 - invalid_client:没有这样的 API 密钥:Bearer

Stripe Connect Authentication failure - invalid_client: No such API key: Bearer

我正在使用 OmniAuth-StripeConnect Gem 在 Rails 上进行 Ruby 工作,每次我尝试连接到 Stripe Connect API 时都会遇到此故障身份验证,'redirecting' 我到 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

但我仔细检查了一下,发现是 none 个。

有人有想法吗?

我认为您是在使用带测试 API 键的现场卡进行测试?

老问题,我知道,但我今天也遇到了这个错误,它可能会在以后帮助其他人。 repo/gem 的所有者说他不再是 "really supporting" 了,无论如何。此答案假设您正在尝试让用户在 Stripe 上创建他们的帐户并将身份验证令牌传回您的控制器。

我决定完全不使用 gem。在 'undoing' 安装说明之后,我发现将 stripe_connect 方法保留在 OmniauthCallbacksController 下仍然可以正常工作——只是不会出现上述错误。

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

希望对您有所帮助。

对于可能发现此问题的其他人,当我遇到此问题时,那是因为我没有正确设置 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 文件中。

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