mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-16 21:40:23 +01:00
fix: #9487, session data gathered during a session is lost upon login
e.g. returnTo, tids_viewed, etc.
This commit is contained in:
@@ -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);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user