Session node.js Express/socket.io与facebook的混合应用程序

Session node.js Express/socket.io与facebook的混合应用程序,session,node.js,express,socket.io,Session,Node.js,Express,Socket.io,我正在node.js应用程序中使用express/socket.io组合。到目前为止,它运行良好。 现在,我需要将facebook用户id和电子邮件id(在用户获得授权后)存储到会话范围中。我看到这里有很多选择,但有点迷失了。。在我的应用程序中,大多数通信都是通过socket.io进行的。。最终我想要的是在客户端随时访问用户id和电子邮件id var express = require("express"), fs = require("fs"), app = express.c

我正在node.js应用程序中使用express/socket.io组合。到目前为止,它运行良好。 现在,我需要将facebook用户id和电子邮件id(在用户获得授权后)存储到会话范围中。我看到这里有很多选择,但有点迷失了。。在我的应用程序中,大多数通信都是通过socket.io进行的。。最终我想要的是在客户端随时访问用户id和电子邮件id

var express = require("express"),
    fs = require("fs"),
    app = express.createServer(
        form({ keepExtensions: true })
    ),
    io = require("socket.io");

socket = io.listen(app);

获得授权后,我建议使用cookie中已有的accessToken,然后通过socket.io发送,并使用graph.facebook或您自己的DB获取电子邮件和id。存储用户ID和电子邮件的问题在于它可能不安全,因为会话劫持可能会发生

Facebook有自己的安全专家来确保它不会被劫持。用它

这可能会有帮助:

获得授权后,您可以通过express在会话中存储数据

在非常基本的层面上:

// Get data from facebok and store it on a var `userData`

// server
socket.on('getUserData', function (callback) {
    callback(facebookUserData);
});



// client
socekt.emit('getUserData', function(userData) {
    console.log(userData);      
});

这正是我正在做的。。问题是如何将其存储在会话范围中。也许Cris-O的信息会有所帮助。感谢你最后的评论,“Facebook有自己的安全专家来确保它不会被劫持。使用它!”事实上,如果你使用Facebook的javascript SKD,accessToken将已经存储在cookie中。所以不用担心。您还可以使用它来处理所有身份验证。你甚至可以将它用于其他系统,如推特、谷歌或雅虎。而且很成熟,谢谢。目前,我的问题是通过使用简单的cookie解决的。如果需要,将来将使用everyauth。我已经看到了。它与facebook js有何不同?目前我正在使用它,并且能够使用graph api阅读和发布。。但我发现YQL甚至比这些更好。您不必了解facebook/twitter/etc在内部的工作方式。。无论如何,我的问题很简单。如何在会话范围中存储用户ID?我主要使用的是socket.io。。。在“”中,他们给出了一个示例,但不确定如何使用它。我主要希望能够在需要时从客户端访问userId。多谢。如果我理解正确,1。从客户端发送“getUserData”,在服务器端收到“getUserData”后,使用facebook用户数据执行回调,最后执行“函数(userData)”。。。明天我会试试这个,并更新我的观察结果。我用cookie解决了我的问题,效果很好。这是我使用的cookie插件的链接。