diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 29eb6603c9..2256b6b905 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -350,10 +350,12 @@ authenticationController.onSuccessfulLogin = async function (req, uid) { }); await Promise.all([ user.auth.addSession(uid, req.sessionID), - (uid > 0) ? db.setObjectField('uid:' + uid + ':sessionUUID:sessionId', uuid, req.sessionID) : null, user.updateLastOnlineTime(uid), user.updateOnlineUsers(uid), ]); + if (uid > 0) { + await db.setObjectField('uid:' + uid + ':sessionUUID:sessionId', uuid, req.sessionID); + } // Force session check for all connected socket.io clients with the same session id sockets.in('sess_' + req.sessionID).emit('checkSession', uid); diff --git a/src/user/auth.js b/src/user/auth.js index bc7126dad2..da8551d831 100644 --- a/src/user/auth.js +++ b/src/user/auth.js @@ -82,6 +82,9 @@ module.exports = function (User) { async function cleanExpiredSessions(uid) { const uuidMapping = await db.getObject('uid:' + uid + ':sessionUUID:sessionId'); + if (!uuidMapping) { + return; + } const expiredUUIDs = []; const expiredSids = []; await Promise.all(Object.keys(uuidMapping).map(async (uuid) => {