La mejor estrategia para compartir algunos datos confidenciales del usuario entre Node y PHP

0

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?

    
pregunta evening 19.08.2018 - 16:15
fuente

1 respuesta

1

Desde mi perspectiva, su caso encaja muy bien con el enfoque de JSON Web Token (JWT). Puede codificar todos los datos necesarios en JWT y pasarlos con solicitudes. Su aplicación Node.js debe verificar la firma de JWT y extraer de ella todos los datos necesarios. Si algo es demasiado grande / complejo para poner en JWT, entonces la aplicación de back-end puede solicitar para estos datos otro servicio de back-end a través de los mecanismos de seguridad de la red de back-end.

    
respondido por el tegoo 19.08.2018 - 16:59
fuente

Lea otras preguntas en las etiquetas