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

时间:2011-10-12 11:38:57

标签: session node.js express socket.io

我在node.js应用中使用express / socket.io组合。到目前为止它工作正常。 现在,我需要将 facebook用户ID和电子邮件ID (在用户被授权后)存储到会话范围中。我看到有很多选项,有点丢失..在我的应用程序中,大多数通信都是通过socket.io进行的。最终我想要的是在客户端随时访问用户ID和电子邮件ID ... < / p>

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

socket = io.listen(app);

2 个答案:

答案 0 :(得分:1)

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

Facebook拥有自己的安全专家,以确保它不会被劫持。使用它!

答案 1 :(得分:1)

这可能会有所帮助:

http://criso.github.com/fbgraph/

获得授权后,您可以通过快递

将数据存储在会话中

http://expressjs.com/guide.html#session-support

在最基本的层面上:

// 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);      
});