我已经在这个问题上工作了7个小时了,我仍然不知道。也许你们中的一个可以帮助我。
我只是尝试将使用Omniauth的Devise 1.2rc的OAuth功能集成到我的Rails应用程序中。
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宝石并了解其中的每一行代码,也许你们其中一人可以告诉我问题可能是什么。
答案 0 :(得分:2)
问题现在解决了。显然这是Devise的一个问题。我把它作为一个问题发布在他们的Github上,他们在源头修复了它。在最新的Devise master分支中,它现在可以运行。
答案 1 :(得分:2)
在尝试解决此问题几个小时之后,我意识到config/initializers/omniauth.rb
文件中的.gitignore
(对我来说很遗憾)。
如果您还没有
,请从.gitignore列表中删除omniauth.rb