Omniauth / Devise / Facebook:无法识别身份验证路线

时间:2011-03-10 16:08:51

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

我已经在这个问题上工作了7个小时了,我仍然不知道。也许你们中的一个可以帮助我。

我只是尝试将使用Omniauth的Devise 1.2rc的OAuth功能集成到我的Rails应用程序中。

  • 我一直在使用Devise的这个教程:

https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview

  • 我已经完成了他们告诉你的一切......

  • 是的,我已将以下行添加到我的devise.rb中:

config.omniauth :facebook, "APP ID", "APP SECRET"

  • 我已添加:omniauthable到我的用户模型,以及教程中描述的类函数

  • 我已经实现了omniauth_callbacks控制器,以及回调函数,我在routes.rb中指定了omniauth_callbacks控制器。

  • 当我运行“rake middleware”时,它确实列出了Omniauth中间件:

use OmniAuth::Strategies::Facebook

  • 我已经直接从Git repo,master分支安装了Devise,所以它是最新的

  • 我安装了Omniauth 1.2.0.beta5,这是最新版本。在我的Gemfile中,它说:

gem 'oa-oauth', '0.2.0.beta5', :require => 'omniauth/oauth'

  • 我已经重新启动了服务器,显然是

  • 但是,当我尝试请求此网址时:

http://localhost:3000/auth/facebook

it simply says

ActionController::RoutingError (No route matches "/auth/facebook"):

/ user / auth / facebook也不起作用。

由于我遗憾的是没有时间拆开整个Omniauth和Devise宝石并了解其中的每一行代码,也许你们其中一人可以告诉我问题可能是什么。

2 个答案:

答案 0 :(得分:2)

问题现在解决了。显然这是Devise的一个问题。我把它作为一个问题发布在他们的Github上,他们在源头修复了它。在最新的Devise master分支中,它现在可以运行。

答案 1 :(得分:2)

在尝试解决此问题几个小时之后,我意识到config/initializers/omniauth.rb文件中的.gitignore(对我来说很遗憾)。

如果您还没有

,请从.gitignore列表中删除omniauth.rb