@srsl/tools
Version:
JavaScript tools for common interfaces
39 lines (31 loc) • 953 B
JavaScript
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,
}
}