Sinatraでセッションを使う方法
タグ: sinatra / 初版公開: 2013-11-09

軽量Webアプリケーションフレームワーク、SinatraではデフォルトでRackのセッション機能は無効化されている。セッションを有効にするには以下の指定を行う。

enable :sessions

これによってアプリケーション内でsession変数が使用可能になる。sessionを使ったアプリケーションの例は以下の通り。ルート/fooでセッションにHello World!という文字列を追加し、別のルート/barでセッションから値を取り出して表示するものだ。

get '/foo' do
  session[:message] = 'Hello World!'
  redirect to('/bar')
end

get '/bar' do
  session[:message]   # => 'Hello World!'
end

なおセッションのCookieをカスタマイズするには、use Rack::Session::Cookieを使う。

use Rack::Session::Cookie, :key => 'rack.session',
                           :domain => 'foo.com',
                           :path => '/',
                           :expire_after => 2592000, # In seconds
                           :secret => 'change_me'