如何在Everyauth的.findOrCreateUser上获取Express sessionID?
我试图在Everyauth的.findOrCreateUser上获取Express sessionID 这个问题的背景: 基本上,我尝试集成Socket.IO和Express,以及读取 我可以从socket.IO范围获得expresssessionid,这对我的项目设计很重要如何在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
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);