mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 17:16:14 +01:00
fix: tests, handle no sessions
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user