Skip to content

BufferZoneCorp/rack-session-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

knot-rack-session-store

Rack-compatible session storage middleware providing pluggable backends including Redis, Memcache, and encrypted cookie stores for Rack and Rails applications.

Installation

Add to your Gemfile:

gem 'knot-rack-session-store', '~> 2.1'

Or install directly:

gem install knot-rack-session-store

Usage

Redis session store in a Rack application

require 'rack'
require 'rack/session/store'

# config.ru
use Rack::Session::Store::Redis,
  redis_url: ENV.fetch('REDIS_URL', 'redis://localhost:6379/0'),
  key:        '_myapp_session',
  expire_after: 3600,
  secret:     ENV['SESSION_SECRET']

run MyApp

Memcache session store

use Rack::Session::Store::Memcache,
  servers: ['localhost:11211'],
  key:     '_myapp_session',
  expire_after: 1800

Encrypted cookie store

use Rack::Session::Store::Cookie,
  key:    '_myapp_session',
  secret: ENV['SESSION_SECRET'],
  old_secret: ENV['SESSION_SECRET_OLD']  # for key rotation

Rails integration

# config/initializers/session_store.rb
Rails.application.config.session_store :rack_session_redis_store,
  redis_url:    ENV.fetch('REDIS_URL'),
  key:          '_myapp_session',
  expire_after: 2.hours

Configuration options

Option Default Description
key _session_id Cookie name for the session ID
expire_after nil (browser session) TTL in seconds
secret required HMAC secret for signed cookies
namespace rack:session Redis/Memcache key prefix

Requirements

  • Ruby >= 2.7.0
  • redis gem for Redis backend
  • dalli gem for Memcache backend

License

MIT License. See LICENSE for details.

About

Ruby gem

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages