我试着获得Everyauth的.findOrCreateUser上的快递.findOrCreateUser。
这个问题的背景:
基本上,我尝试集成Socket.IO和Express,并阅读socket.io和快递。把一切都绑在一起,
我可以从sessionID范围获得socket.IO,这对我的项目设计很重要。
io.sockets.on('connection', function (socket) {
console.log('A socket with sessionID ' + socket.handshake.sessionID
+ ' connected!');
});
到目前为止还不错..。然后,I还需要获得 Express sessionID on .findOrCreateUser of Everyauth.
虽然我是Everyauth的初学者,但在完成以下所有过程之后,我成功地获得了facebook/google/twitter userID等,例如,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');
node.js console.log如下所示:
2012-05-24T18:59:31+00:00 app[web.1]: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2012-05-24T18:59:31+00:00 app[web.1]: { lastAccess: 1337885971024,
2012-05-24T18:59:31+00:00 app[web.1]: cookie:
2012-05-24T18:59:31+00:00 app[web.1]: { path: '/',
2012-05-24T18:59:31+00:00 app[web.1]: httpOnly: true,
2012-05-24T18:59:31+00:00 app[web.1]: _expires: Thu, 24 May 2012 22:59:30 GMT,
2012-05-24T18:59:31+00:00 app[web.1]: originalMaxAge: 14400000 },
2012-05-24T18:59:31+00:00 app[web.1]: auth:
2012-05-24T18:59:31+00:00 app[web.1]: { twitter:
2012-05-24T18:59:31+00:00 app[web.1]: { token: 'w0HH4lrzMfeqCLOwd4ncHoPndlyHHqMvyXZM5mGhx8',
2012-05-24T18:59:31+00:00 app[web.1]: tokenSecret: 'Pzfooy4UVRZpwXvPMJRDFXUX1LdMN59hZwz4ZkBIOc' },
2012-05-24T18:59:31+00:00 app[web.1]: facebook:
2012-05-24T18:59:31+00:00 app[web.1]: { user: [Object],
2012-05-24T18:59:31+00:00 app[web.1]: accessToken: 'AAACrg6U8ThcBAG4QVDvIM5Qjd2gsjc3jYnHBas7g0w5QcdUJ0cgXXYBBCnmNaz8exdiFLtgXvruoErZCCXX9yitSZB3SIoAB0cKSPguAZDZD' },
2012-05-24T18:59:31+00:00 app[web.1]: loggedIn: true,
2012-05-24T18:59:31+00:00 app[web.1]: userId: 1,
2012-05-24T18:59:31+00:00 app[web.1]: google:
2012-05-24T18:59:31+00:00 app[web.1]: { user: [Object],
2012-05-24T18:59:31+00:00 app[web.1]: accessToken: 'ya29.AHES6ZRq_AFBJNLG92rSuqApI7dmE0fSq12AifJ14nxNNwlJ6OsFo58' } } }
显然,twitter、facebook和google auth信息是通过快速会话适当地收集的,但是,
.findOrCreateUser(函数(会话.不包括快递sessionID )
如何在万豪的.findOrCreateUser上获得快递sessionID?谢谢。
编辑
在这篇文章之后,我试图实现
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) )从未被触发.
发布于 2012-05-25 02:22:00
好的,
我应该做的
console.log(session.id);
但是,我认为当我只做console.log(会话)时,就会出现整个对象内容;
https://stackoverflow.com/questions/10744785
复制相似问题