Skip to content

Simple cookie based session management. Session data is stored database using Sequel.

Notifications You must be signed in to change notification settings

daigoto/rack-session-sequel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

rack-session-sequel

Rack::Session::Memcacheを参考に、Sequel経由でDBにセッション情報を保持するものを作りました。主に、Sinatraで利用するつもりで書いてます。

この機能を用いて、ログイン状態管理などをするために、永続Cookieで「ブラウザを終了してもログイン状態を保持」することができるようにしてあります。その場合にはログイン成功時の処理に、rack.session.options に以下のように有効期限を付与してください。

env['rack.session.options'].merge!(:expire_after => 30 * 86400) # 30 days

migration

require '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

sample

require '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

About

Simple cookie based session management. Session data is stored database using Sequel.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages