UNPKG

dg-npm-templates

Version:

Npx generator for react app dependency creation by digite

54 lines (44 loc) 1.51 kB
const sessions = require("express-session"); const MemoryStore = require("express-session").MemoryStore; const RedisStore = require("connect-redis")(sessions); const redis = require("redis"); global.store = null; if (process.env.REDIS_HOST && process.env.REDIS_PORT) { const client = redis.createClient({ legacyMode: true }); client.on("error", function (err) { console.log("Could not establish a connection with redis for session.", err); }); client.on("connect", function (err) { if (err) { console.log(err); } console.log("Connected to redis successfully for session"); }); client.connect().catch(console.error); global.store = new RedisStore({ host: process.env.REDIS_HOST, port: process.env.REDIS_PORT, auth_pass: process.env.REDIS_PASSWORD, client }); } else { global.store = new MemoryStore(); } const setupSession = app => { app.use( sessions({ store: global.store, secret: process.env.SESSION_SECRET, resave: false, saveUninitialized: true, cookie: { secure: process.env.PROD !== "false" ? true : false, // if true only transmit cookie over https httpOnly: true, // if true prevent client side JS from reading the cookie maxAge: 1000 * 60 * 60 * 24 // session max age in miliseconds } }) ); }; module.exports = { setupSession };