我正在使用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
不存在或未连接到您的应用client_id
模式但我加倍检查,但这些都没有。
有没有人有想法?
答案 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
文件中。
确保使用正确的密钥设置环境。