diff --git a/app/services/session.js b/app/services/session.js index 876ac89..6b53ac1 100644 --- a/app/services/session.js +++ b/app/services/session.js @@ -53,7 +53,16 @@ class SessionService { return async (req, res, next) => { if (options.requireLogin && !req.user) { req.session.loginReturnTo = req.url; - return res.redirect(options.loginUri); + this.log.info('redirecting to login', { returnTo: req.url }); + return new Promise((resolve, reject) => { + req.session.save(async (err) => { + if (err) { + return reject(err); + } + res.redirect(options.loginUri); + return resolve(); + }); + }); } if (options.requireAdmin && (!req.user || !req.user.flags.isAdmin)) { return next(new SiteError(403, 'Administrator privileges are required'));