2011-07-13 68 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。

相關問題