Sto creando un sito web costruito su PHP. Ha una piccola pagina in cui gli utenti possono avere una chat di gruppo e scambiarsi messaggi. Per quella pagina apro una websocket con l'aiuto di socket.io
e expressjs
. Voglio usare i nomi utente con cui le persone si sono registrate. E, ovviamente, voglio che le persone non siano in grado di impersonare altre persone. Quindi, quando l'utente inserisce un messaggio, ottiene socket.emit
ed al server, e dal server faccio qualcosa del tipo:
socket.on('message', function(msg) {
io.emit('message', {
username: username
message: msg
});
});
Per trasmettere quel messaggio a tutti.
La mia domanda è, come posso recuperare il nome utente? La mia soluzione al momento è questa. Creo un ID utente lungo 128 caratteri lungo per l'iscrizione utente, memorizza in rosso qualcosa come
user_id: username
,
e quindi passo user_id
su socket.emit
e faccio sul server Node
username: redisClient.get("user_id")
.
È una buona idea? È sicuro? O ci sono soluzioni migliori a questo problema?