Estoy creando un sitio web que está construido en PHP. Tiene una pequeña página donde los usuarios pueden tener un chat grupal y enviar mensajes entre ellos. Para esa página abro un websocket con la ayuda de socket.io
y expressjs
. Quiero usar nombres de usuario con los que las personas se registraron. Y, por supuesto, quiero que las personas no puedan hacerse pasar por otras personas. Entonces, una vez que el usuario ingresa un mensaje, recibe socket.emit
ed en el servidor, y desde el servidor hago algo como:
socket.on('message', function(msg) {
io.emit('message', {
username: username
message: msg
});
});
Para transmitir ese mensaje a todos.
Mi pregunta es, ¿cómo recupero el nombre de usuario? Mi solución en este momento es la siguiente. Creo un único usuario largo de 128 caracteres en el registro de usuario, lo almaceno en redis algo como
user_id: username
,
y luego paso user_id
en socket.emit
y hago en el servidor Node
username: redisClient.get("user_id")
.
¿Es una buena idea? ¿Es seguro? ¿O hay mejores soluciones para este problema?