如何在Everyauth的.findOrCreateUser上获取Express sessionID?

如何在Everyauth的.findOrCreateUser上获取Express sessionID?,session,node.js,express,socket.io,everyauth,Session,Node.js,Express,Socket.io,Everyauth,我试图在Everyauth的.findOrCreateUser上获取Express sessionID 这个问题的背景: 基本上,我尝试集成Socket.IO和Express,以及读取 我可以从socket.IO范围获得expresssessionid,这对我的项目设计很重要 io.sockets.on('connection', function (socket) { console.log('A socket with sessionID ' + socket.handshake.s

我试图在Everyauth的.findOrCreateUser上获取Express sessionID

这个问题的背景:

基本上,我尝试集成Socket.IO和Express,以及读取

我可以从socket.IO范围获得expresssessionid,这对我的项目设计很重要

io.sockets.on('connection', function (socket) {
    console.log('A socket with sessionID ' + socket.handshake.sessionID 
        + ' connected!');
});
到目前为止还不错。。。 然后,我还需要在Everyauth的.findOrCreateUser上获取Express sessionID。

虽然我是Everyauth的初学者,但在Everyauth进程配置如下后,我成功获得了facebook/google/twitter用户ID等,例如Everyauth.facebook:

everyauth.facebook
    .entryPath('/auth-facebook')
    .appId(conf.fb.appId)
    .appSecret(conf.fb.appSecret)
    .findOrCreateUser(function (session, accessToken, accessTokenExtra, fbUserMetadata)
    {
        console.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
        console.log(session); //  <-- if this session object includes sessionID, everything works for me..
        console.log(fbUserMetadata);
        return usersByFbId[fbUserMetadata.id] ||
            (usersByFbId[fbUserMetadata.id] = addUser('facebook', fbUserMetadata));
    })
    .redirectPath('/public/authdone.html');
显然,twitter、facebook和google auth信息是通过express会话适当收集的

.findOrCreateUser(函数(会话…) 不包括快速会话ID

如何在Everyauth的.findOrCreateUser上获得ExpressSessionID,获得批准? 谢谢


编辑

在这篇文章之后,我尝试实现

everyauth.facebook
    .entryPath('/auth-facebook')
    .appId(conf.fb.appId)
    .appSecret(conf.fb.appSecret)
    .findOrCreateUser(function (session, accessToken, accessTokenExtra, fbUserMetadata)
    {
        console.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
        console.log(session);
        console.log(fbUserMetadata);
        return usersByFbId[fbUserMetadata.id] ||
            (usersByFbId[fbUserMetadata.id] = addUser('facebook', fbUserMetadata));
    })
    .findUserById(function (req, userId, callback)
    {
        console.log("######################################");
        console.log(req.sessionID);
    })
    .redirectPath('/public/authdone.html');
但是,.findUserById(函数(req、userId、callback)从未被激发过…

OK

我应该这么做的

console.log(session.id);
但是,我认为当我只执行console.log(session)时会显示整个对象内容;

请参阅,它内部使用
console.log
;默认情况下,它只显示两个深度的嵌套对象。如果要显示对象和所有子对象及其子对象等,请尝试
console.log(util.inspect(session,false,null))
console.log(session.id);