我有
gem 'omniauth-google_oauth2'
在我的Gemfile中。捆绑安装之后也是如此。它错误地说,
红宝石1.9.3-P0 /宝石/ omniauth-1.0.2 / LIB / omniauth / builder.rb:33:在 `在提供商中救援':无法找到匹配策略 :google_oauth2。您可能需要安装额外的gem(例如 omniauth-google_oauth2)。 (LoadError)
我错过了什么?请任何想法。
答案 0 :(得分:11)
使用
gem 'omniauth-google-oauth2'
将最后一个下划线更改为连字符。
答案 1 :(得分:7)
问题是由OmniAuth如何对提供者名称进行说明:
OmniAuth::Utils.camelize(:google_oauth2.to_s)
=> GoogleOAuth2
然而,提供者实际上是GoogleOauth2
- 完全限定 - OmniAuth::Strategies::GoogleOauth2
所以解决方案是使用完全限定的类:
OmniAuth::Strategies::GoogleOauth2
Rails.application.config.middleware.use OmniAuth::Builder do
provider OmniAuth::Strategies::GoogleOauth2, ENV["KEY"], ENV["SECRET"]
end
答案 2 :(得分:0)
使用Ben W的解决方案使服务器可以启动,但搞砸了我的路线。我在config/initializers/omniauth.rb
:google_oauth2, "[KEY]", "[SECRET]"
我的google身份验证路径是/auth/google_oauth2