diff --git a/src/core/session.js b/src/core/session.js index 334f7cc..6944db4 100644 --- a/src/core/session.js +++ b/src/core/session.js @@ -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); };