Mysql
 sql >> Base de données >  >> RDS >> Mysql

Garder un utilisateur connecté avec nodeJS

Vous devez comprendre la différence entre un serveur express et un serveur NodeJS natif, voici mon lien comparaison serveur nodejs vs serveur express

Vous pouvez donc :

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

Cela vous permet d'avoir toujours le fonctionnement de bas niveau avec NodeJS.

Ainsi, si vous ne souhaitez pas utiliser de modules ou de framework existants, vous pouvez créer votre propre gestionnaire de session :

  1. utilisation de cookies
  2. en utilisant IP/UA
  3. en utilisant socket

La meilleure façon serait d'abord de l'implémenter avec socket , par exemple :

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

ou

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

Il vous suffit donc d'implémenter un middleware qui vérifie l'identifiant.

Si vous souhaitez empêcher la session prediction , session sidejacking , etc., vous devez combiner les cookies, l'IP, le socket et vos idées pour le rendre plus sûr pour votre application.

Une fois que vous avez fait votre gestionnaire de sessions, vous pouvez choisir où stocker les sessions, dans un simple object , en redis , en mongodb , en mysql ... (express utiliser MemoryStore par défaut, mais peut-être pas maintenant)