Initial commit
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
const session = require('express-session')
|
||||
const RedisStore = require('connect-redis')(session)
|
||||
const { secret, cookiesSecure } = require('../config/keys')
|
||||
const redisClient = require('../models/cache')
|
||||
|
||||
const SESSION_DURATION = 1000 * 60 * 60 * 2 // 2 hours.
|
||||
const SESSION_ID_COOKIE_NAME = 'sid'
|
||||
// const RETRY_PERIOD = 3000 // 3 seconds.
|
||||
|
||||
const options = {
|
||||
cookie: { maxAge: SESSION_DURATION, sameSite: 'lax', secure: cookiesSecure },
|
||||
secret,
|
||||
name: SESSION_ID_COOKIE_NAME,
|
||||
rolling: true,
|
||||
resave: false,
|
||||
saveUninitialized: false,
|
||||
store: new RedisStore({ client: redisClient })
|
||||
}
|
||||
|
||||
module.exports = session(options)
|
||||
|
||||
// Aditional checking logic below.
|
||||
// Export it instead of the middleware above if it proves necessary.
|
||||
|
||||
// const sessionMiddleware = session(options)
|
||||
|
||||
// function verifiedSession(req, res, next) {
|
||||
// let tries = 3
|
||||
// let timeoutId
|
||||
|
||||
// function lookupSession(err) {
|
||||
// clearTimeout(timeoutId)
|
||||
|
||||
// if (err) return next(err)
|
||||
|
||||
// if (req.session !== undefined) return next()
|
||||
|
||||
// tries -= 1
|
||||
|
||||
// if (tries < 0) {
|
||||
// return next(Error('Session store unresponsive'))
|
||||
// }
|
||||
|
||||
// sessionMiddleware(req, res, lookupSession)
|
||||
|
||||
// if (req.session === undefined) {
|
||||
// timeoutId = setTimeout(lookupSession, RETRY_PERIOD)
|
||||
// }
|
||||
// }
|
||||
|
||||
// lookupSession()
|
||||
// }
|
||||
|
||||
// module.exports = verifiedSession
|
||||
Reference in New Issue
Block a user