Ruby on rails 如何在Rails 2中正确使用OmniAuth
我正在尝试对我的应用程序使用OmniAuth(0.2.6)策略。体系结构为Rails 2.3.10,机架版本为1.1(OmniAuth需要此版本或更高版本)。出现的一个问题是Rails无法识别我重定向到“/auth/provider”。实际的错误消息是“No route matches”/auth/casport”。尽管抛出了该错误,但代码似乎执行到了该错误之前的那个点:“request.env['omniauth.auth']”,我很确定这意味着它无法识别“omniauth.auth']”“环境哈希的键。我感觉OmniAuth没有正确加载。我用Mongrel和Webrick测试了相同的策略和代码库,得到了相同的错误消息 这是我的OmniAuth初始值设定项(config/initializers/OmniAuth.rb): 我肯定有用于auth/casport/setup和auth/casport/callback的路由 我也尝试过这种方法: 将该中间件代码放在config/environments/development.rb文件中 有人对我可能做得不正确有什么想法吗?谢谢 编辑:我也尝试过这种方法 这将返回一个读取错误:“NoMethodError:undefined method'new'for#Hash…”Ruby on rails 如何在Rails 2中正确使用OmniAuth,ruby-on-rails,mongrel,omniauth,middleware,Ruby On Rails,Mongrel,Omniauth,Middleware,我正在尝试对我的应用程序使用OmniAuth(0.2.6)策略。体系结构为Rails 2.3.10,机架版本为1.1(OmniAuth需要此版本或更高版本)。出现的一个问题是Rails无法识别我重定向到“/auth/provider”。实际的错误消息是“No route matches”/auth/casport”。尽管抛出了该错误,但代码似乎执行到了该错误之前的那个点:“request.env['omniauth.auth']”,我很确定这意味着它无法识别“omniauth.auth']”“环
编辑2:我已升级到Rails 2.3.10,因为OmniAuth与Rails 2.3.4不兼容。我在OmniAuth的Github页面上创建了一个问题,上面有上述详细信息,这是OmniAuth的创建者Michael Bleigh的回复: “OmniAuth从未正式支持Rails 2.3.x——我听说有些人在这方面很幸运,但这并不能保证。很抱歉" 因此,我上面发布的方法似乎对某些人有效。为了保证正确的操作,需要Rails 3
ActionController::Dispatcher.middleware.use OmniAuth::Builder do
provider :casport, :setup => true
end
config.middleware.use OmniAuth::Builder do
provider :casport, :setup => true
end
ActionController::Dispatcher.middleware.use OmniAuth::Strategies::Casport = {
:setup => true
}