¶ ↑
rack-session-sequelRack::Session::Memcacheを参考に、Sequel経由でDBにセッション情報を保持する ものを作りました。主に、Sinatraで利用するつもりで書いてます。
この機能を用いて、ログイン状態管理などをするために、 永続Cookieで「ブラウザを終了してもログイン状態を保持」することができるように してあります。 その場合にはログイン成功時の処理に、rack.session.options に以下のように有効期限を 付与してください。
env['rack.session.options'].merge!(:expire_after => 30 * 86400) # 30 days
¶ ↑
migrationrequire 'rubygems' require 'sequel' require 'sequel/extensions/migration' class CreateSessions < Sequel::Migration def up create_table :sessions do primary_key :id String :sid, :unique => true, :null => false text :session DateTime :update_at end end def down self << 'drop table sessions' end end
¶ ↑
samplerequire 'rubygems' require 'sinatra' require 'rack-session-sequel' require 'sequel' DB = Sequel.sqlite use Rack::Session::Sequel , :dataset => DB[:sessions] get '/' do if session['count'] session['count'] += 1 else session['count'] = 1 end "count is #{session['count']}" end