Frage

Ich möchte einige Benutzerinformationen in einem Cookie festlegen und in der Verbindung darauf zugreifen können. Ist dies möglich?

War es hilfreich?

Lösung

client.request.headers.cookie führt zu Rennbedingungen, da der Cookie immer auf den zuletzt angemeldeten Benutzer zeigt.

Bitte siehe: Socket.io Authentifizierung.

Andere Tipps

Mit Socket.io 0.8.7 können Sie über: Anforderungsheader zugreifen:

Socket.handshake.Headerers

Weitere Details finden Sie darin unter https://github.com/learnboost/socket.io/wiki/uthorizing

Ich habe es verstanden, das funktioniert:

client.request.headers.cookie

Nachdem Sie auf den Quellcode von Engine.IO geschaut haben, können Sie Cookies mit:

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

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

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

    next();
});

Dieser Code könnte mit dem Code von Engine.io in Konflikt stehen, der das Sid Cookie festlegt. Da sowohl HTTP/1.1- als auch HTTP/2-Header von Fall unempfindlich sind, und Engine.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top