【问题标题】:Devise & omniauth Facebook authentication in Rails 3.1在 Rails 3.1 中设计和omniauth Facebook 身份验证
【发布时间】:2011-09-07 20:57:20
【问题描述】:

我已关注 this guide 以使 Devise Facebook 身份验证正常工作,但我现在已经到了无法理解的地步,我需要一些帮助。

我获得了使用 Facebook 登录链接,但单击它时出现以下错误,告诉我路线有问题

未知操作

找不到路径“/users/auth/facebook”的设计映射。也许您忘记将您的路线包装在范围块内?例如: devise_scope :user do match "/some/route" => "some_devise_controller" end

这是我的路线文件

  devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
  get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
  root :to => 'home#index'

编辑:

通过更改路由解决了这个问题

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } do
  get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end
root :to => 'home#index'

现在我得到下一个错误,让 Facebook auth 工作,但是当从“允许应用程序屏幕”返回时,ruby 抛出...

未定义的方法“关闭?”对于 nil:NilClass

activesupport (3.1.0.rc8) lib/active_support/whiny_nil.rb:48:in method_missing' /opt/local/lib/ruby/1.8/net/http.rb:1060:inrequest' 法拉第 (0.6.1) lib/faraday/adapter/net_http.rb:51:in call' faraday (0.6.1) lib/faraday/request/url_encoded.rb:14:incall' 法拉第 (0.6.1) lib/faraday/request.rb:88:in run' faraday (0.6.1) lib/faraday/request.rb:28:inrun' faraday (0.6.1) lib/faraday/connection.rb:170:in run_request' oauth2 (0.4.1) lib/oauth2/client.rb:63:inrequest'

...

这是使用 Rails 3.1.0rc8 和 ruby​​ 1.9.2

【问题讨论】:

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


    【解决方案1】:

    我昨天刚刚完成了我的应用程序的omniauth登录,使用完全相同的指南和rails 3.1 final

    不确定您的路线是否正常,我的路线如下所示:

    devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } do
      get 'sign_in', :to => 'users/sessions#new', :as => :new_user_session
      get 'sign_out', :to => 'users/sessions#destroy', :as => :destroy_user_session
    end
    
    devise_scope :user do
      get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
    end
    

    在我的 devise_for :users 块中,我输入并退出登录,因为我使用的是 OmniAuth 而没有其他身份验证

    指南还说get '/users/auth/:provider' 行应该在devise_scope :user

    不确定这是否能解决您的问题,但至少我想说明这些不适合评论的要点

    【讨论】:

    猜你喜欢
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多