オムニバスは道を見つけることができません

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

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

私はこの問題をどのようにデバッグするのか、問題を理解するためにどのような情報を提供するのかは分かりません。

2

3 答え

いくつかの研究の後、私は解決策を見つけました。 routes.rbファイルに以下を追加しました:

get 'auth/:provider' => 'authentications#passthru'

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

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

なぜ私はそれをしなければならなかったのか分かりませんが、それは働いています...

1
追加された
ねえ...これも私のために働いた。これがなぜ機能するのか、さらに詳しいことはありますか?
追加された 著者 felix,

ここにそれを働かせるための私の措置がありました:

1)Gemfileにomniauthを追加する

2)Gemfileにomniauth戦略を追加します(例: omniauth-linkedin

3) Run bundle install

4) Add the omniauth initializer in config/initializers/omniauth.rb

5) Add the match auth/:provider/callback => users#omniauth route to routes.rb (point it to the controller/action where you'll handle the authentication response)

6)手順4で参照したコントローラで認証応答を処理するアクションを作成します

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

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

1
追加された

gemfileに 'omniauth-twitter'を追加する必要があります。

:strategy_class => OmniAuth::Strategies::Twitter

twitterプロバイダの最後に omniauth.rb に追加してください。

次に、/ auth/twitterパスを認識します。

0
追加された