Skip to content

Commit

Permalink
Added support for Redis as session store (via env variable SESSION_ST…
Browse files Browse the repository at this point in the history
  • Loading branch information
achwie committed Jul 28, 2017
1 parent c9bb82b commit e49ef3e
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 5 deletions.
7 changes: 2 additions & 5 deletions app.js
Expand Up @@ -32,16 +32,13 @@ var correlationIdHandler = wicked.correlationIdHandler();
var passport = require('passport');
var fs = require('fs');
var session = require('express-session');
var FileStore = require('session-file-store')(session);

// Use default options, see https://www.npmjs.com/package/session-file-store
var sessionStoreOptions = {};
var sessionStore = require('./sessionstore')(session);

var SECRET = 'ThisIsASecret';

// Session: 15 minutes
var sessionArgs = {
store: new FileStore(sessionStoreOptions),
store: sessionStore,
secret: SECRET,
saveUninitialized: true,
resave: false,
Expand Down
28 changes: 28 additions & 0 deletions sessionstore.js
@@ -0,0 +1,28 @@
var debug = require('debug')('portal:app');

function initSessionStore(session){
var sessionStoreType = process.env.SESSION_STORE_TYPE || 'file';

var sessionStoreOptions = {};
var SessionStore;
switch (sessionStoreType){
case 'file':
SessionStore = require('session-file-store')(session);
// Use default options for file session store, see https://www.npmjs.com/package/session-file-store
break;
case 'redis':
SessionStore = require('connect-redis')(session);
// Set options for Redis session store, see https://www.npmjs.com/package/connect-redis
sessionStoreOptions.host = process.env.SESSION_STORE_HOST || 'localhost';
sessionStoreOptions.port = process.env.SESSION_STORE_PORT || 6379;
break;
default:
throw new Error("Invalid session-store type: '" + sessionStoreType + "'");
}

debug('Using session store \'' + sessionStoreType + '\' with options ' + JSON.stringify(sessionStoreOptions));

return new SessionStore(sessionStoreOptions);
}

module.exports = initSessionStore;

0 comments on commit e49ef3e

Please sign in to comment.