update: just make sure to use the same version of passport as the passport-socketio module is using, currently this is version 0.2.0, you might have to upgrade your passport-facebook module as well
old post:
I had the same problem and solved this by changing the passport-socket.io index.js file:
var defaults = {
passport: require('passport'),
key: 'connect.sid',
secret: null,
store: null,
success: function(data, accept){accept(null, true)},
fail: function(data, message, critical, accept){accept(null, false)}
};
change this default configuration to:
var defaults = {
passport: null,
key: 'connect.sid',
secret: null,
store: null,
success: function(data, accept){accept(null, true)},
fail: function(data, message, critical, accept){accept(null, false)}
};
Of course, this will only work if you pass in your own passport object like you are currently doing. The problem has something to do with passport-socketio requiring the passport module which overwrites the req.login function, I'll have a better look tomorrow to figure out exactly what is going wrong.