【问题标题】:Omniauth/Devise/Facebook: Auth route is not recognizedOmniauth/Devise/Facebook:无法识别身份验证路由
【发布时间】:2011-07-12 20:29:31
【问题描述】:

我已经解决这个问题 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 中间件”时,它会列出 Omniauth 中间件:

use OmniAuth::Strategies::Facebook

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

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

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

  • 我已经重启了服务器,很明显

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

http://localhost:3000/auth/facebook

它只是说

ActionController::RoutingError(没有路由匹配“/auth/facebook”):

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

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

【问题讨论】:

  • 你试过/users/auth/facebook
  • 是的,也不起作用。甚至没有一条路线存在

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


【解决方案1】:

在尝试解决这个问题几个小时后,我意识到我会在 .gitignore 文件中添加 config/initializers/omniauth.rb(真丢脸)。

如果你还没有从 .gitignore 列表中删除omniauth.rb

【讨论】:

  • 使用omniauthable模块时没有config/initializers/omniauth.rb
  • 我用一个来保存api密钥,但肯定没有必要
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 2014-10-21
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    相关资源
    最近更新 更多