なんかどうも OmniAuth を使おうと思ったらまず Session を有効にしろやと言われたり言われなかったりするので久しぶりにがっつりコードリーディングしてみた。 以下のバージョンで確認した。 Sinatra 1.4.7Rack 1.6.4OmniAuth 1.3.1まとめrack middlewareは記述順に依存する 具体的には OmniAuth の前に Rack::Session を use しておかないとダメなぜなら OmniAuth は session を利用できる前提で書かれているからrack middlewareの組み立てられ方 より正確にはアプリケーション本体をいちばん内側に包むたまねぎ構造sinatraのset :sessions, trueはどこに書いてもよい set :sessions, true は書く位置を自由にできるが、use Rack::Session: