config/routes.rb
Hoge::Application.routes.draw do ... match '/auth/:provider/callback' => 'sessions#create' match '/auth/failure' => 'sessions#failure' ... end
app/controllers/sessions_controller.rb
class SessionsController < ApplicationController def create ... rediret_to root_url end def failure render :text => 'error!' end end
認証うまくいってるはずなのに、ずっと /auth/failure にリダイレクトされてて何でだろうーと思ったら、単に SessionsController#create で rediret_to とか書いてたせいでした。
NoMethodError だと invalid_response で /auth/failure に飛ばされます。(oa-oauth-0.2.6/lib/omniauth/strategies/oauth.rb:64)
あと、omniauth gem 入れると oa-* gem がインストールされて、omniauth-0.2.6/ 以下にある oa-* ディレクトリのファイルが実行される訳じゃなくて、各 gem のほうが実行されるんですね。
2 時間くらい悩んだのでした。