6

Facebook認証をRails3.1サイトに統合し始めましたが、fbauthダイアログのキャンセルボタンをクリックすると問題が発生しました。[キャンセル]をクリックすると、/ auth / facebook / callbackの自分のサイトにリダイレクトされてから、/ loginページにリダイレクトされます(私はDeviseを使用しています)。

私がやりたいのは、キャンセルされた認証を、ユーザーが標準的な方法(メール、ユーザー名、パスワードなど)でアカウントを作成できるページにリダイレクトすることです。/ loginページへのリダイレクトを上書きするにはどうすればよいですか?

ところで、私はomniauth-facebookgemを使用しています。

ありがとう!

4

2 に答える 2

0

omn​​iauth 設定でデフォルトの on_failure 動作をオーバーライドできると思います。私はデバイスを使用していませんが、omniauth-facebook gem を使用しており、以下のバリエーションで成功しています:

OmniAuth.config.on_failure = Proc.new { |env|
  OmniAuth::FailureEndpoint.new(env).redirect_to_failure
} 

または、次のようなよりカスタムなもの:

OmniAuth.config.on_failure do |env|
  new_path = "#{env['SCRIPT_NAME']}#{OmniAuth.config.path_prefix}/failure?message=#{error_type}"

  [302, {'Location' => new_path, 'Content-Type'=> 'text/html'}, []]
end
于 2012-07-11T21:09:42.947 に答える