fix: tests, handle no sessions

This commit is contained in:
Barış Soner Uşaklı
2020-05-16 22:17:20 -04:00
parent a0d76ff0a6
commit 8bf980cb63
2 changed files with 6 additions and 1 deletions

View File

@@ -350,10 +350,12 @@ authenticationController.onSuccessfulLogin = async function (req, uid) {
}); });
await Promise.all([ await Promise.all([
user.auth.addSession(uid, req.sessionID), user.auth.addSession(uid, req.sessionID),
(uid > 0) ? db.setObjectField('uid:' + uid + ':sessionUUID:sessionId', uuid, req.sessionID) : null,
user.updateLastOnlineTime(uid), user.updateLastOnlineTime(uid),
user.updateOnlineUsers(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 // Force session check for all connected socket.io clients with the same session id
sockets.in('sess_' + req.sessionID).emit('checkSession', uid); sockets.in('sess_' + req.sessionID).emit('checkSession', uid);

View File

@@ -82,6 +82,9 @@ module.exports = function (User) {
async function cleanExpiredSessions(uid) { async function cleanExpiredSessions(uid) {
const uuidMapping = await db.getObject('uid:' + uid + ':sessionUUID:sessionId'); const uuidMapping = await db.getObject('uid:' + uid + ':sessionUUID:sessionId');
if (!uuidMapping) {
return;
}
const expiredUUIDs = []; const expiredUUIDs = [];
const expiredSids = []; const expiredSids = [];
await Promise.all(Object.keys(uuidMapping).map(async (uuid) => { await Promise.all(Object.keys(uuidMapping).map(async (uuid) => {