warden_omniauth-jonrowe
hassox の warden_omniauth (0.1.0: https://github.com/hassox/warden_omniauth/)より jonrowe の(https://rubygems.org/gems/warden_omniauth-jonrowe)の方がいいっぽい。
hassox のだと gem に上がってる奴だと env['omniauth.auth'] を見ないのでコールバーっくループが起こるけど jonroweのは見る。 またredirect_after_callback にブロックが渡せるので
use WardenOmniAuth do |config| config.redirect_after_callback {|env| logger.debug(env['rack.session']['redirect_after_callback']) env['rack.session']['redirect_after_callback'] } end
みたいなことが出来る。
helpers do def warden env['warden'] end def authenticate!(redirect_after_callback="/") session['redirect_after_callback'] = redirect_after_callback warden.authenticate! session['redirect_after_callback'] = "/" end end ... get :protected do authenticate!(url_for(:protected)) ...
ってな感じで動的に戻してもらいたいところを指定。
以前の hassox を uninstall してから % sudo gem install warden_omniauth-jonrowe