Devise + Facebook + Omniauth回调陷入困境

时间:2012-06-13 08:46:28

标签: facebook ruby-on-rails-3 devise omniauth

我正在使用Devise + Rails 3.这些是我使用的宝石:

gem 'devise' (1.3.4)
gem 'mm-devise' (1.2)
gem 'omniauth-facebook' (1.3.0)
gem 'omniauth' (1.1.0)
gem 'oauth2' (0.6.1)
gem 'oa-core' (0.3.2)

我在devise / omniauth wiki上关注了setup tutorial

My routes:

devise_for :users
resources :events
resources :posts
resources :users
root :to => "home#index"

devise_scope :user do
  get "sign_in", :to => "devise/sessions#new"
end

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }

Facebook将我重定向到:

http://localhost:3000/users/auth/facebook/callback. 

我看到请求在浏览器中处于挂起模式。服务器日志显示:

(facebook) Callback phase initiated.

但从未通过这个阶段。我按照教程中的建议设置了回调:

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController

  def facebook
    ...
  end

  def passthru
    ...
  end
end

我错过了什么?

任何帮助将不胜感激。

非常感谢!

3 个答案:

答案 0 :(得分:1)

您是否尝试过检查是否有失败

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController

  def failure
    debugger
    ...
  end
end

答案 1 :(得分:0)

在端口3000上使用JS SDK时,这似乎是一个问题 尝试在标准端口上运行本地服务器。

sudo rails s -p 80* or *rvmsudo rails s -p 80

答案 2 :(得分:0)

您的防火墙设置如何?当端口32768到61000未打开时,我遇到了确切的问题。在Superuser.com的聪明人告诉我发生了什么之后,很长一段时间都遭遇了。 https://superuser.com/questions/479503/why-are-ports-30000-to-60000-needed-when-browsing-the-net