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';
export const store = new RedisStore({ client });
const middlewareStore = {};
export default (req, res, next) => {
const domain = getHostFromRequest(req, false, true);
const sess = session({
name: COOKIE_SESSION_NAME,
store,
secret: SESSION_SECRET,
resave: false,
saveUninitialized: false,
cookie: {
domain,
httpOnly: true,
secure: false,
maxAge: 30 * 24 * HOUR,
},
});
let sess = middlewareStore[domain];
if (!sess) {
const store = new RedisStore({ client });
sess = session({
name: COOKIE_SESSION_NAME,
store,
secret: SESSION_SECRET,
resave: false,
saveUninitialized: false,
cookie: {
domain,
httpOnly: true,
secure: false,
maxAge: 30 * 24 * HOUR,
},
});
middlewareStore[domain] = sess;
}
return sess(req, res, next);
};