fix: #9487, session data gathered during a session is lost upon login

e.g. returnTo, tids_viewed, etc.
This commit is contained in:
Julian Lam
2021-04-14 16:13:02 -04:00
parent f4c5050a16
commit 1fee6a702a

View File

@@ -328,7 +328,12 @@ authenticationController.doLogin = async function (req, uid) {
const loginAsync = util.promisify(req.login).bind(req); const loginAsync = util.promisify(req.login).bind(req);
const regenerateSession = util.promisify(req.session.regenerate).bind(req.session); const regenerateSession = util.promisify(req.session.regenerate).bind(req.session);
const sessionData = { ...req.session };
await regenerateSession(); await regenerateSession();
for (const [prop, value] of Object.entries(sessionData)) {
req.session[prop] = value;
}
await loginAsync({ uid: uid }); await loginAsync({ uid: uid });
await authenticationController.onSuccessfulLogin(req, uid); await authenticationController.onSuccessfulLogin(req, uid);
}; };