0

カスタマイズした OmniAuth::Strategies モジュールの build_access_token メソッドの特定の条件下で、ブラウザを別のリンクにリダイレクトする必要があるというシナリオがありました。しかし、redirect_to で NoMethodError が発生しました (戦略が Rack コンテキストにあるため)。

redirect_to new_path

私も試しました

Rack::Response.new(["302 Moved"], 302, 'Location' => new_path).finish

しかし、失敗しました。Rack には深いコール スタックがあるようです。

戦略でエラーを発生させると、ApplicationController でキャッチできません。

OmniAuth::Strategies で redirect_to を使用するにはどうすればよいですか?

4

1 に答える 1

0

シナリオの回避策を見つけました。から、カスタマイズされたフラグを持つbuild_access_tokenを作成して返します。empty access_tokenしたがって、コールバック コントローラはフラグを処理してリダイレクトできます。

非常に深い呼び出しスタックがあるため、Rack コンテキスト内でリダイレクトを行うのは困難です。callback_phase (OmniAuth::Strategies)

于 2012-07-05T03:07:13.417 に答える