cache session middlewares

This commit is contained in:
HF 2022-09-11 13:36:57 +02:00
parent fb529794df
commit 0a9172d3a7

View File

@ -10,22 +10,27 @@ import { HOUR, COOKIE_SESSION_NAME } from './constants';
import { SESSION_SECRET } from './config'; import { SESSION_SECRET } from './config';
export const store = new RedisStore({ client }); const middlewareStore = {};
export default (req, res, next) => { export default (req, res, next) => {
const domain = getHostFromRequest(req, false, true); const domain = getHostFromRequest(req, false, true);
const sess = session({ let sess = middlewareStore[domain];
name: COOKIE_SESSION_NAME, if (!sess) {
store, const store = new RedisStore({ client });
secret: SESSION_SECRET, sess = session({
resave: false, name: COOKIE_SESSION_NAME,
saveUninitialized: false, store,
cookie: { secret: SESSION_SECRET,
domain, resave: false,
httpOnly: true, saveUninitialized: false,
secure: false, cookie: {
maxAge: 30 * 24 * HOUR, domain,
}, httpOnly: true,
}); secure: false,
maxAge: 30 * 24 * HOUR,
},
});
middlewareStore[domain] = sess;
}
return sess(req, res, next); return sess(req, res, next);
}; };