2011-07-13 31 views
2

我想为我的应用程序使用OmniAuth(0.2.6)策略。架构是Rails 2.3.10,Rack的版本是1.1(OmniAuth需要该版本或更高版本)。发生的问题是Rails无法识别我的重定向到“/ auth/provider”。实际的错误信息是“没有路由匹配”/ auth/casport“,即使这个错误被抛出,代码似乎也会执行超过这个错误:”request.env ['omniauth.auth']“,我很肯定的表示它不能识别env哈希的“omniauth.auth”键我有一种感觉,OmniAuth没有被正确加载我已经测试了与Mongrel和Webrick相同的策略和代码库,我也得到相同的错误信息如何正确使用OmniAuth和Rails 2

这里是我的OmniAuth初始化(配置/初始化/ omniauth.rb):

ActionController::Dispatcher.middleware.use OmniAuth::Builder do 
    provider :casport, :setup => true 
end 

我肯定有面向auth/casport /安装和认证/ casport地方路线/ callback。

我也尝试过这种做法:How do you implement OmniAuth on Rails 2.2?

config.middleware.use OmniAuth::Builder do 
    provider :casport, :setup => true 
end 

通过将中间件代码在config /环境/ development.rb文件。

有没有人有任何想法,我可能会做错吗?谢谢!

编辑:我也试过这种方法Has anyone used omniauth with rails 2.3.8?

ActionController::Dispatcher.middleware.use OmniAuth::Strategies::Casport = { 
    :setup => true 
} 

,并返回读取错误:“NoMethodError:未定义的方法 '新' 的#Hash ...

编辑2:我已经升级到Rails 2.3.10,因为OmniAuth与Rails 2.3.4不兼容

回答

2

我在OmniAuth的Github页面https://github.com/intridea/omniauth/issues/397上创建了一个问题,与上述细节,这是OmniAuth的创建者Michael Bleigh的回应:

“OmniAuth从未正式支持过Rails 2.3.x--我听说有些人有幸运过,但它不是这是有保证的。对不起!”

所以它看起来像我上面贴可能对某些人的工作方法。为了保证正确操作,Rails是需要3。

相关问题