【问题标题】:node.js Express/socket.io hybrid application with facebooknode.js Express/socket.io 与 facebook 的混合应用程序
【发布时间】:2011-10-12 11:38:56
【问题描述】:

我在我的 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);

【问题讨论】:

    标签: session node.js express socket.io


    【解决方案1】:

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

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

    【讨论】:

    • 这正是我正在做的......问题是如何将它存储在会话范围内。可能 Cris-O 的信息会有所帮助。感谢您的最后评论,“Facebook 有自己的安全专家,以确保它不会被劫持。使用它!”
    • 其实如果你使用 Facebook 的 javascript SKD,accessToken 已经存储在 cookie 中了。所以不用担心。您还可以使用everyauth module,它负责所有的身份验证。您甚至可以将它与其他系统一起使用,例如高音扬声器、谷歌或雅虎。而且相当成熟。
    • 谢谢。暂时我的问题是通过使用简单的cookie来解决的。如果需要,将来会使用everyauth。
    【解决方案2】:

    这可能会有所帮助:

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

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

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

    【讨论】:

    • 我见过criso.github.com/fbgraph。它与 facebook-js 有何不同?目前我正在使用它,并且能够使用图形 api 阅读和发布。但我发现 YQL 甚至比这些更好。您不必了解 facebook/twitter/etc 在内部是如何工作的。无论如何我的问题很简单。如何将用户 ID 存储在会话范围内?大多数情况下我在“socket.io/#how-to-use”中使用socket.io ...,他们给出了一个例子,但不知道如何使用它。主要是我希望能够在客户端需要时访问 userId。
    • 我已经添加到上面的答案中,因为这里的代码看起来很垃圾
    • 漂亮。非常感谢。如果我理解正确,1.从客户端发送“getUserData”,在服务器端收到“getUserData”后,使用facebook用户数据执行回调,最终执行“function(userData)”......好吧会尝试明天会更新我的观察结果。
    • 我已经使用 cookie 解决了我的问题,并且运行良好。这是我使用的 cookie 插件的链接。 github.com/carhartl/jquery-cookie
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2018-06-19
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多