我想在cookie中设置一些用户信息,并能够在连接上访问它,这可能吗?

有帮助吗?

解决方案

client.request.headers.cookie 导致比赛条件,因为cookie总是指向最后登录的用户。

请参见: socket.io身份验证.

其他提示

使用socket.io 0.8.7,您可以通过:

插座

您可以在 https://github.com/learnboost/socket.io/wiki/authorizing

我明白了,这有效:

client.request.headers.cookie

查看引擎后。IO源代码后,您可以使用以下方式设置cookie:

var io = require('socket.io')(3000);

io.use((socket, next) => {
    socket.conn.transport.once('headers', (headers) => {

        headers['set-cookie'] ="sess=test;"; });

    next();
});

该代码可能与设置SID cookie的Engine.io代码相抵触。由于http/1.1和http/2标头均对案例不敏感,并且在标题对象中使用'set-cookie',添加小写对象名称'set-cookie'将避免此问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top