Mysql
 sql >> Database >  >> RDS >> Mysql

Mantenere un utente connesso con nodeJS

Devi capire la differenza tra un server express e un server nativo NodeJS, qui il mio link confronto tra server nodejs e server express

Quindi puoi fare:

var app = express();
var server = http.createServer(app);

Ciò ti consente di avere ancora le funzionalità di basso livello con NodeJS.

Quindi, se non vuoi utilizzare moduli o framework esistenti, puoi creare il tuo gestore di sessioni:

  1. utilizzo dei cookie
  2. utilizzando IP/UA
  3. usando la presa

Il modo migliore sarebbe prima implementarlo con socket , ad esempio:

server.on('connection', function (socket) {
  socket.id = id;
});

o

server.on('request', function (req, res) {
  req.connection.id = id; // The socket can also be accessed at request.connection.
});

Quindi, devi solo implementare un middleware che controlli l'id.

Se vuoi impedire la session prediction , session sidejacking , ecc. devi combinare cookie, ip, socket e le tue idee per renderlo più sicuro per la tua app.

Una volta eseguito il tuo gestore di sessioni, puoi scegliere dove archiviare le sessioni, in un semplice object , in redis , in mongodb , in mysql ... (express usa MemoryStore per impostazione predefinita, ma forse non ora)