谷歌omniauth不承认路径

时间:2014-02-15 12:25:34

标签: ruby-on-rails-4 omniauth

我有 omniauth-google-oath2 gem的问题。

我的代码:

devise.rb

config.omniauth :google_oauth2, 'app_id','secret'

omniauth_callbacks_controller.rb

def google_oauth2
   auth = env["omniauth.auth"]

   @user = User.find_for_google_oauth2(request.env["omniauth.auth"], current_user) 
   if @user.persisted?
     flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Google"
     sign_in_and_redirect @user, :event => :authentication
   else
     session["devise.google_uid"] = request.env["omniauth.auth"]
     redirect_to new_user_registration_url
   end
end

我还在user.rb模型中提供了 find_for_google_oauth2 的方法。 在我的html.erb中,我写道:

<%= link_to "With Google", user_omniauth_authorize_path(:google_oauth2) %>

最后我有这个错误:没有路由匹配{:controller =&gt;“omniauth_callbacks”,:action =&gt;“passthru”,:provider =&gt;:google_oauth2,:format =&gt; nil}缺少必需的密钥:[:provider]

我的错误在哪里? 谢谢你的任何进展!

2 个答案:

答案 0 :(得分:5)

检查用户模型

devise :omniauthable, omniauth_providers: [:google_oauth2]

它可能缺失或错误。

答案 1 :(得分:0)

我解决了我的问题。这是愚蠢的:) 我刚刚重启了我的本地rails服务器,一切正常。