Я пытаюсь получить Экспресс-сессия ID on .findOrCreateUser of Everyauth.Как получить Express sessionID на .findOrCreateUser от Everyauth?
Backgroud этого вопроса:
В принципе, я пытаюсь интегрировать Socket.io и Express, и чтение socket.io and Express. Tying it all together,
я мог бы получить Экспресс SESSIONID из сферы Socket.io что очень важно для мой проект.
io.sockets.on('connection', function (socket) {
console.log('A socket with sessionID ' + socket.handshake.sessionID
+ ' connected!');
});
До сих пор так хорошо ... Тогда мне нужно получить Экспресс SESSIONID на .findOrCreateUser из Everyauth.
Хотя я новичок в Everyauth, мне удалось получить facebook/Google/Twitter идентификатор_пользователя и т.д. после everyauth proccess сконфигурированного, как показано ниже, например, 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');
узел. 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 аутентификации информации собирают надлежащим образом через экспресс-сессию, однако,
.findOrCreateUser (функция (сессия ... не включает Экспресс SESSIONID
Как получить экспресс SESSIONID на .findOrCreateUser из Everyauth, appropirately? Спасибо.
EDIT
после этого поста, я пытаюсь реализовать
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, идентификатор пользователя, обратный вызов) никогда не был уволен ...
См. [API doc для 'util.inspect'] (http://nodejs.org/api/util.html#util_util_inspect_object_showhidden_depth_colors), который' console.log' использует внутри; по умолчанию он будет отображать только вложенные объекты на глубину до двух. Если вы хотите показать объект и * все * подобъекты, их подобъекты и т. Д., Попробуйте 'console.log (util.inspect (session, false, null))'. – Ashe
Len, очень информативно! большое спасибо! –