2011-07-13 15 views
2

私のアプリケーションにOmniAuth(0.2.6)戦略を使用しようとしています。アーキテクチャはRails 2.3.10で、Rackのバージョンは1.1です(このバージョン以上はOmniAuthに必要です)。 Railsが "/ auth/provider"へのリダイレクトを認識しないという問題が発生しました。実際のエラーメッセージは "No route matches"/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 

私は間違いなく、認証/ casport /セットアップおよび認証/ casportための場所でのルートを持っています/コールバック

0123設定/環境/ development.rbファイルにそのミドルウェア・コードを配置することによって、 How do you implement OmniAuth on Rails 2.2?

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

は、私はまた、このアプローチを試してみました。

誰かが私が間違ってやっていることについて考えている人はいますか?ありがとう!

編集:私もこのアプローチにHas anyone used omniauth with rails 2.3.8?

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

を試みたし、それが読み取りエラーを返します:「NoMethodError:未定義のメソッド '新しい' #Hashのために...

編集2: OmniAuthがRails 2.3.4と互換性がないため、Rails 2.3.10にアップグレードしました。

答えて

2

OmniAuthのGithubページhttps://github.com/intridea/omniauth/issues/397で問題を作成しましたが、

"OmniAuthは正式にRails 2.3.xをサポートしたことはありません - 一部の人はそれに運があったと聞いたことがありますが、何かではありませんそれは保証されています。申し訳ありません!

私は上記の方法が一部の人にとってはうまくいくかもしれません。正しい動作を保証するために、Rails 3が必要です。

関連する問題