Pregunta

Quiero establecer alguna información de usuario en una cookie y ser capaz de acceder a él en la conexión, es posible?

¿Fue útil?

Solución

client.request.headers.cookie conduce a condiciones de carrera como la cookie siempre apunta al último usuario conectado.

Por favor, véase:. Socket.IO autenticación

Otros consejos

El uso de Socket.IO 0.8.7, se puede acceder a través de los encabezados de solicitud:

socket.handshake.headers

Puede encontrar más detalles sobre esto en https://github.com/LearnBoost/ socket.io/wiki/Authorizing

Lo tengo, esto funciona:

client.request.headers.cookie

Después de mirar al código fuente engine.io se puede establecer cookies utilizando:

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

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

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

    next();
});

este código podría entrar en conflicto con el código engine.io que establece la cookie sid. como HTTP / 1.1 y HTTP / 2 cabeceras son sensibles a mayúsculas y engine.io uso 'Set-Cookie' en las cabeceras objeto la adición de un nombre de objeto en minúsculas 'set-cookie' evitaría este problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top