2011-03-02 50 views
0

我想为现有的Rails 2.2应用程序使用Omniauth实现Facebook和Twitter身份验证。到目前为止,我一直无法找到关于如何在Rails 2.2中做到这一点的任何建议 - 因此这个问题。我有两个问题要问 -你如何在Rails 2.2上实现OmniAuth?

  1. 据我所知机架支持Rails是从2.3引入的,我相信Rack是OmniAuth所必需的。那么甚至有可能在Rails 2.2网站上使用OmniAuth,为什么?

  2. 如果可以实施OmniAuth - 你会怎么做?

回答

1

不能使用默认config.gem “omniauth” ...得到它的工作我做了以下内容:手动

1.安装omniauth

sudo gem install omniauth 

2.在config/environment.rb文件中的Rails初始化程序之前需要

require 'omniauth' 
Rails::Initializer.run do |config| .... 

3.In development.rb文件我已经添加了以下配置

config.middleware.use OmniAuth::Builder do 
provider :facebook, "XXx", "YYYY", :scope => % (email user_birthday publish_stream offline_access) 
end 

,只要你想在这里....一切应该按预期工作添加为许多供应商。

+0

感谢您的回答moski - 我现在就试试看。我冒昧地对你的答案做了一些小修改。 – Nikhil 2011-03-02 15:42:11

+0

所以我尝试了你的建议,我得到了以下错误 - config/environments/development.rb:19:'load_environment':未定义的方法'中间件'for#(NoMethodError) The Rails我使用的版本是2.2.2,Omniauth 0.1.6 – Nikhil 2011-03-02 16:00:58

+0

@Nikhil,有没有什么好的办法来解决这个问题?我在同一个问题上磕磕绊绊... – slotishtype 2011-03-23 16:28:46