2

我已经在这个问题上工作了 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

it simply says

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

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

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

4

2 回答 2

2

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

于 2011-03-14T19:48:26.103 回答
2

在尝试解决这个问题几个小时后,我意识到我config/initializers/omniauth.rb.gitignore文件中(我感到羞耻)。

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

于 2012-02-21T08:48:28.157 回答