在配置一个socket.io服务器中,我有以下代码从头中的cookie获取会话ID,我想验证会话是否对应与一个登录用户(我使用express作为http服务器,并使用MemoryStore来存储会话)。无法从cookie中使用websockts与socket.io连接的会话ID
io.set('authorization', function (handshakeData, callback) {
var cookies = handshakeData.headers.cookie;
cookies = connect.utils.parseCookie(cookies);
var sid = cookies['connect.sid'];
/* verify that is a valid session */
});
当我连接到从Firefox这最终使用长轮询我node.js的这个工作,但是当我从Chrome的连接,它使用的WebSockets失败。它不起作用的原因是,当客户端代码连接到套接字时,Chrome根本不会在头中发送cookie。
有没有办法让Chrome浏览器通过WebSockets发送cookie?
如果不是我应该如何存储sessionID,以便在验证套接字连接时可以访问它?
我还应该注意,保持会话ID的cookie被设置为只有http,这在其他地方可能会遇到问题?我的理解是,删除该选项会增加您对XSS攻击的脆弱性?
感谢您的帮助!
保存自己一个忙,使用http://nowjs.com/ – TiansHUo
@TiansHUo我期待到nowjs,谢谢你的提示!你知道我可以如何在每个连接上找到connect.sid吗? – Evan