2011-10-27 13 views
2

私はRails 3アプリでOmniauthを実装しようとしています。私はRailscast episod 205からチュートリアルに従ったが、それを動作させることはできない。私が '/ auth/twitter'(それはどんなプロバイダでもうまくいきません)を呼び出すと、Railsは適切なルートを見つけることができないと文句を言います(私のデフォルトルートを読み込もうとします)。Omniauthがルートを見つけることができません

config/initializers/の下にomniauth.rbを追加し、gem 'omniauth'を私のGemfileに入れ、バンドルインストールを実行しました。

この問題のデバッグ方法や問題の理解に役立つ情報はわかりません。

答えて

1

いくつかの調査の後、私は解決策を見つけました。

GET 'AUTH /::プロバイダ' => '認証番号パススルー'

と私の認証コントローラへ:

def passthru 
    render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false 
    end 

私はroutes.rbをファイルに以下を追加しましたなぜ私はそれをやらなければならなかったのか分かりませんが、それは働いています...

+0

こんにちは...これも私のために働いた。これがなぜ機能するのか、さらに詳しいことはありますか? – felix

0

あなたのgemfileに「omniauth-twitter」を追加する必要があります。

:strategy_class => OmniAuth::Strategies::Twitter 

to omniauth.rb、twitterプロバイダーの最後です。

次に、/ auth/twitterパスが認識されます。ここで

1

は、それが働いて得るために、私の手順だった:

1)あなたのGemfile

2にomniauth追加)

3)(あなたのGemfileに例えばomniauth-linkedinを戦略をomniauth追加)を実行しbundle install

4)マッチを追加)config/initializers/omniauth.rb

5にomniauth初期化子を追加から=>users#omniauthルート(あなたが認証応答を処理しますコントローラ/アクションを指すように)

6)あなたがステップ#4

で参照コントローラで認証応答を処理するためのアクションを構築

7)Webサーバーを再起動します

Apacheを再起動するまで、デフォルトの/auth/:providerのルートが認識されませんでした。

関連する問題