fix: log out user if session cookie resolves to non-existent uid

This commit is contained in:
Julian Lam
2025-11-10 11:55:19 -05:00
parent 3a81f90322
commit 5d9da6035e
2 changed files with 7 additions and 1 deletions

View File

@@ -490,7 +490,7 @@ authenticationController.logout = async function (req, res) {
};
await plugins.hooks.fire('filter:user.logout', payload);
if (req.body?.noscript === 'true') {
if (req.body?.noscript === 'true' || res.locals.logoutRedirect === true) {
return res.redirect(payload.next);
}
res.status(200).send(payload);

View File

@@ -53,6 +53,12 @@ module.exports = function (middleware) {
}
if (req.loggedIn) {
const exists = await user.exists(req.uid);
if (!exists) {
res.locals.logoutRedirect = true;
return controllers.authentication.logout(req, res);
}
return true;
} else if (req.headers.hasOwnProperty('authorization')) {
const user = await passportAuthenticateAsync(req, res);