How to save and retrieve session from Redis

Eleeist picture Eleeist · Dec 23, 2012 · Viewed 31.7k times · Source

I am trying to integrate Redis sessions into my authentication system written in Node.js.

I have been able to successfully set up Redis server, connect-redis and Express server.

Here is my setup (just the important bit):

var express = require("express");
var RedisStore = require("connect-redis")(express);
var redis = require("redis").createClient();

app.use(express.cookieParser());
app.use(express.session({
    secret: "thisismysecretkey",
    store: new RedisStore({ host: 'localhost', port: 6379, client: redis })
}));

Now... How do I actually create, read and destroy the session? I have read tons of articles on how to setup connect-redis and many questions here on SO, but I swear each one stops on just the configuration and does not explain how to actually use it...

I am aware that that is probably extremely simple, but please don't downvote and just explain :).

Answer

JohnnyHK picture JohnnyHK · Dec 23, 2012

That should be all there is to it. You access the session in your route handlers via req.session. The sessions are created, saved, and destroyed automatically.

If you need to manually create a new session for a user, call req.session.regenerate().

If you need to save it manually, you can call req.session.save().

If you need to destroy it manually, you can call req.session.destroy().

See the Connect documentation for the full list of methods and properties.