2011-06-20 8 views
2

3 + devise + omniauth to facebook connectを使用してください。私が制御を獲得し、優雅にこれを処理する.jsファイルを提供することができますどのようにOmniauthCallbacksController#失敗 - facebookに "Do not Allow"をクリックしたとき

Started GET "https://stackoverflow.com/users/auth/facebook/callback?error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request." for 127.0.0.1 at Mon Jun 20 16:54:42 -0700 2011 
    Processing by Devise::OmniauthCallbacksController#failure as HTML 
    Parameters: {"error_description"=>"The user denied your request.", "error_reason"=>"user_denied", "error"=>"access_denied"} 
Redirected to http://localhost:3000/users/sign_in 
Completed 302 Found in 2ms 

:ユーザーがクリックした場合のアクセス権ダイアログでは、ユーザはにリダイレクトされ、「許可しません」。今、ルートにリダイレクトされていて、サイトが小さな小さなダイアログであることを示しています。

アイデア?ありがとう

答えて

5

deviseからomniauthableを使用しているようです。この場合、Devise :: OmniauthCAllbackController#失敗アクションhereのコードが表示されます。これは動作するはず

class OmniauthController < Devise::OmniauthCAllbackController 

    def failure 
     #handle you logic here.. 
     #and delegate to super. 
     super 
    end 
end 

-

だから、あなたは、コントローラを作成する必要がコントローラを得るには、としてomniauth_controller言います。また、omniauthコントローラーに「devise_for」ルートを追加する必要があります。

+0

ありがとうございましたが、それは取っていません。あなたは何を意味するのですか?また、あなたのomniauthコントローラのために "devise_for"ルートを追加する必要がありますか? – AnApprentice

+0

同様のタイプの問題については、こちらを参照してください - http://railscasts.com/episodes/236-omniauth-part-2ここでは、レジストレーションコントローラーをどのように使用してデバイスの操作を上書きするかを調べる必要があります。また、routes.rbファイルに-devise_forというパスが追加されています。users、:controllers => {:registrations => 'registrations'} バックグラウンドが必要な場合は、最初のエピソードも確認できます。 – rtdp

+1

私はまったく同じ問題を抱えています。私はコールバックコントローラを継承して自分自身の失敗メソッドを入れました。ログは 'Processing by Users :: OmniauthCallbacksController#failure as HTML'と言っていますが、実際に実行する...まだそれを見て – brad

関連する問題