Socket.io如何检查客户端的cookie数据?

时间:2015-11-30 15:59:43

标签: node.js cookies express socket.io

我正在构建待办事项列表应用,其中多个用户可以登录到同一列表并实时查看项目更新 - Google文档样式。我使用NodeJS,Express,Socket.io进行即时更新,使用client-sessions NodeJS模块存储cookie以允许用户保持登录状态。

我可以通过呈现Jade模板在Express页面上加载正确的项目,在请求客户端上使用与cookie相关联的项目填充它,方法是在req.session.user下创建一个包含用户详细信息的cookie。但是,这仅适用于req来自app.get('/', function(req, res){});的{​​{1}}。

但是,当我想通过socket.io直播编辑时,如何确保编辑的项目链接到正确的列表?有没有办法确定套接字客户端在服务器上有什么cookie?

我不想简单地在浏览器上存储具有客户端ID的变量,因为这将是易受攻击的,并且不会利用客户端会话的内置加密。

1 个答案:

答案 0 :(得分:1)

审核socket.io/docs/server-api

client.request将帮助您检索它们。

如果查看客户端会话的代码(client-sessions.js),它会导出解码函数。 session.decode({'cookieName':'name'},cookie_content);