风帆,套接字和授权

时间:2016-10-22 00:22:25

标签: node.js sockets socket.io authorization sails.js

我想建立像whatsapp这样的聊天。 (每个用户都有一个他只能与他们交谈的联系人列表) 我的服务器身份验证基于facebook令牌。 我希望我的套接字认证是一样的。

目前的情况: - 用户登录后,前端向我的sails服务器发送套接字连接请求。 - 在服务器“beforeConnect”功能中,我通过他的fb令牌找到用户。 - 找到用户,套接字连接成功。

问题:我需要在套接字上提供用户详细信息,这是因为我想找到他的聊天记录,并且只更新他的聊天记录和新消息。

这就是我的beforeConnect功能现在的样子。 enter image description here

P.S:不知道是否值得一提,但我在客户端使用socket.io,而不是我在文档中看到的sails.io.js连接我的sails服务器套接字。

1 个答案:

答案 0 :(得分:0)

对于较新版本,不推荐使用onConnect方法,您可以在连接事件上使用令牌进行授权,您必须在连接时存储令牌并检查其他侦听器以进行身份​​验证,将此代码放在config / bootstrap.js中

module.exports.bootstrap = function(cb) { 

    // handle connect socket first event executes after logged in
    sails.io.on('connect', function (socket){
        // store facebook token here
    });

    // handle custom listener for other stuff
    sails.io.on('doSomeStuff', function (socket){
        // check facebook token match with requested token
    });
cb();
};

客户: 你可以简单地发出" doSomeStuff"用facebook登录并使用每个请求传递令牌