Puis-je accéder à un cookie de Socket.io?
Question
Je veux mettre des informations utilisateur dans un cookie et être en mesure d'y accéder à la connexion, est-ce possible?
La solution
client.request.headers.cookie
conduit à des conditions de course que le cookie toujours des points au dernier utilisateur connecté.
S'il vous plaît voir. Socket.IO authentification
Autres conseils
Utilisation Socket.IO 0.8.7, vous pouvez accéder à des en-têtes de demande via:
socket.handshake.headers
Vous pouvez trouver plus de détails sur cette https://github.com/LearnBoost/ socket.io/wiki/Authorizing
Je l'ai, cela fonctionne:
client.request.headers.cookie
Après avoir le code source de engine.io vous pouvez définir des cookies à l'aide:
var io = require('socket.io')(3000);
io.use((socket, next) => {
socket.conn.transport.once('headers', (headers) => {
headers['set-cookie'] ="sess=test;"; });
next();
});
ce code pourrait entrer en conflit avec le code engine.io qui a mis le cookie sid. comme HTTP / 1.1 et HTTP / 2 têtes sont insensibles à la casse et engine.io utilisation Set-Cookie »dans les en-têtes objet en ajoutant un nom d'objet minuscule 'set-cookie éviterait ce problème.