diff --git a/services/subscriptions.js b/services/subscriptions.js index b24d6d69b..eaf2f9b23 100644 --- a/services/subscriptions.js +++ b/services/subscriptions.js @@ -4,24 +4,27 @@ const passport = require('./passport'); module.exports = class Subscriptions { + // Session data does not automatically attach to websocket req objects. + // This middleware code looks for a user in the session and, if it exists, + // attaches it to the graph req. static deserializeUser(req) { return new Promise((resolve, reject) => { session(req, {}, () => { - + if ('session' in req && 'passport' in req.session && 'user' in req.session.passport) { passport.deserializeUser(req.session.passport.user, (err, user) => { if (err) { return reject(err); } - + req.user = user; - + return resolve(req); }); } else { resolve(req); } - + }); }); }