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); user.updateOnlineUsers(caller.uid);
if (caller.uid) { if (caller.uid) {
socketHelpers.emitToUids('event:new_post', result, [caller.uid]); socketHelpers.emitToUids('event:new_post', result, [caller.uid]);
} else if (caller.uid === 0 && caller.sessionID) { } else if (caller.uid === 0) {
websockets.in('sess_' + caller.sessionID).emit('event:new_post', result); websockets.in('online_guests').emit('event:new_post', result);
} }
socketHelpers.notifyNew(caller.uid, 'newPost', result); socketHelpers.notifyNew(caller.uid, 'newPost', result);

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

Loading…
Cancel
Save