fix: guests dont always have sid

v1.18.x
Barış Soner Uşaklı 4 years ago
parent a4fe4d3cf5
commit 700736535c

@ -75,8 +75,8 @@ topicsAPI.reply = async function (caller, data) {
user.updateOnlineUsers(caller.uid);
if (caller.uid) {
socketHelpers.emitToUids('event:new_post', result, [caller.uid]);
} else if (caller.uid === 0 && caller.sessionID) {
websockets.in('sess_' + caller.sessionID).emit('event:new_post', result);
} else if (caller.uid === 0) {
websockets.in('online_guests').emit('event:new_post', result);
}
socketHelpers.notifyNew(caller.uid, 'newPost', result);

@ -198,15 +198,13 @@ async function authorize(socket, callback) {
}
await cookieParserAsync(request);
const sid = request.signedCookies[nconf.get('sessionKey')];
const sessionData = await getSessionAsync(sid);
const sessionData = await getSessionAsync(request.signedCookies[nconf.get('sessionKey')]);
if (sessionData && sessionData.passport && sessionData.passport.user) {
request.session = sessionData;
socket.uid = parseInt(sessionData.passport.user, 10);
} else {
socket.uid = 0;
}
socket.sessionID = sid;
request.uid = socket.uid;
callback();
}

Loading…
Cancel
Save