UNPKG

@srsl/tools

Version:

JavaScript tools for common interfaces

39 lines (31 loc) 953 B
const ExpressSession = require('express-session') const Sequelize = require('sequelize') const EXPRESS_SESSION_SECRET = process.env.EXPRESS_SESSION_SECRET || 'keyboard cat' const createStore = () => { const RedisStore = require('connect-redis')(ExpressSession) /* Allow connect-redis to create its own client (promisified instance will not work) */ return new RedisStore({ host: process.env.REDIS_HOST, port: process.env.REDIS_PORT, }) } module.exports = ({ sequelize, }) => { const store = createStore() const session = ExpressSession({ secret: EXPRESS_SESSION_SECRET, store, saveUninitialized: true, cookie: { secure: process.env.NODE_ENV !== 'development', }, resave: false, // we support the touch method so per the express-session docs this should be set to false proxy: true, // if you do SSL outside of node. }) return { store, session, EXPRESS_SESSION_SECRET, } }