2012-03-26 2 views
3

Omniauthブランチ0-3安定を要求します。//github.com/intridea/omniauth.git のRails 3.0.7能力のgitの

Omniauthは、Aリダイレクトそのユーザーは、その後、我々はOmniauthはすぐにリダイレクトするように表示されるコールバック要求

GET "/auth/facebook/callback?error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request." 

をすることができ、認証ダイアログから「キャンセル」をクリックした場合、「/ AUTH /ログインfacebook」にGET呼び出しを行うことにより、Facebookの認証ダイアログにユーザー〜へ:

GET "/auth/failure?message=invalid_credentials" 

残念ながら、これがアプリに対する応答である場合。 FB要求ダイアログによって生成された招待状の場合、どのユーザが認証ダイアログから「キャンセル」したのかを識別する情報はありません。 Omniauthのリクエストで特定の情報を送信することができれば、バックエンドの明示的な拒否を追跡するのに役立つ「キャンセル」を行ったユーザーを「覚えている」ことができます。

「/ auth/facebook/callback」の呼び出しで返される「/ auth/facebook」の呼び出しでデータを送信する方法はありますか?これはリクエストダイアログのドキュメントの "data"パラメータに似ています。

おかげで、 ウェス

答えて

4

あなたはコールバックURLに渡される「状態」のparamを通過することができます。

例えば、 [/ auth/facebook/callback]をルーティングするコントローラアクションでは、通常のパラメータと同じように取得します:

info = params [:state]

paramの名前は 'state'でなければなりません。これはomniauth-facebookのドキュメントの 'Per-Request Options'セクションに記載されています。 https://github.com/mkdynamic/omniauth-facebook

関連する問題