2016-10-25 4 views
0

私は自分のRails 5サイトでDevise認証をFacebookにしました。すべてのコードと設定はスタンダードです。RailsでOmniauth認証を一時的に無効にする方法は?

今は一時的に無効にします。私はuser_facebook_omniauth_authorize_pathへの一時的なリダイレクトを呼び出しページに戻したいと思っています。「Facebookの許可は一時的にブロックされています」というフラッシュメッセージが表示されます。

しかし、私はそのようなリダイレクトを設定できるコントローラーは見つかりませんでした。または、コールバックを検索する必要がありますか?私はコンソールに私が見るuser_facebook_omniauth_authorize_pathをクリックすると

は2016-10-25T14 [、私は2016年10月25日 十四時21分39秒0300で127.0.0.1のために、 "/ユーザ/認証/ログインfacebook" GET開始しました:21:39.699171#23486] INFO - omniauth:(facebook)リクエストフェーズが開始されました。

コントローラは呼び出されません。どのようにリダイレクトを行うには?

は私が

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController 
     def facebook 
..... 
     end 
    end 

コントローラを持っている - しかし、それは、www.facebook.com要求後に呼び出される - 私は必要はありません前と同じように。

答えて

0

ApplicationControllerbefore_actionを定義して、request.path == users/auth-facebookをチェックし、フラッシュメッセージ付きのルートにリダイレクトすることができます。

+0

私はそれを試しましたが、 'ApplicationController'がこの認証シーケンスで呼び出されていないようです。 – prograils

+0

'user_facebook_authorize_path'のパスは何ですか?それが 'facebook.com/.... 'の場合、あなたのコントローラでそれを傍受することはできません.JSを使って' onClick'イベントを傍受する必要があります。しかし、UIのfacebookボタンを無効にし、そのボタンの近くの説明を提示することをお勧めします。 –

+0

パスは '/ users/auth/facebook'で、コントローラは' users/omniauth_callbacks#passthru'です。しかし実際には、 'users/omniauth_callbacks'コントローラの'パススルー 'アクションは、少なくともフェイスブックコールの前には呼び出されません。 – prograils

関連する問題