redsess
Yet another redis session thing for node.
This is built on top of jed/cookies.
You can optionally pass in a KeyGrip instance, or an array of keys to
use to sign cookies.
Breaking Changes in 1.0.0
Sessions are now stored as stringified JSON objects using set and get.
This means that all sessions that were created using previous versions of
redsess will need to be cleared out/nuked/obliterated. Before upgrading
to 1.0.0, let your users know that their sessions will be removed!
Example
var RedSess = require('redsess')
, http = require('http')
, Cookies = require('cookies')
, Keygrip = require('keygrip')
, keys = new Keygrip(['some secret keys here'])
RedSess.createClient(redisOptions)
http.createServer(function (req, res) {
var session = new RedSess(req, res, {
keys: keys,
cookieName: 's',
expire: expirationInSeconds,
client: redisClient,
keys: [ "this is a string key" ],
keys: new KeyGrip(keys),
})
req.session = session
res.session = session
req.session.get('auth', function (er, auth) {
if (!auth) {
} else {
}
})
validateLogin(postedData, function (er, isValid) {
if (isValid)
req.session.set('auth', postedData)
})
req.session.del('auth', function (er) {
})
}).listen(1337)
Constructor Options
expire {Number} Time in seconds that sessions last Default=2 weeks
cookieName {String} Cookie name to use for session id's. Default = 's'
keys A Keygrip instance to use
to sign the session token cookie. (If an array is passed in, then
RedSess will make a KeyGrip obj out of it.)
client If you have another redis client you'd like to use, then
you can do so.
cookies If you already have a Cookies object, you may pass that
in. If not specified, then it'll make a new one for you.
cookieOptions an object that extends the options object that is passed to
cookies.set and cookies.get
Methods
Callbacks are all the standard cb(er, result) style.
Deep objects are supported, but cycles in data objects will cause
terrible explosively bad awful undefined behavior, so DON'T DO THAT.
- RedSess.createClient(opts)
Calls redis.createClient with the supplied options. See
node_redis for more details.
(opts.host and opts.port are passed to redis.createClient as positional
arguments, not on the configuration object.)
If there's an opts.auth member, then it will use that string as a
password to redis.
Sets a key on the session.
Sets a hash of keys and values on the session.
Fetches the key from the session.
Fetches all keys from the session. If there is no data in the
session, then it'll return null.
Deletes a key from the session.
Deletes the entire session.