Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mantendo um usuário logado com nodeJS


Você precisa entender a diferença entre um servidor expresso e um servidor NodeJS nativo, aqui meu link comparação do servidor nodejs vs servidor expresso

Então você pode fazer:
var app = express();
var server = http.createServer(app);

Isso permite que você tenha ainda a função de baixo nível com o NodeJS.

Então, se você não quiser usar módulos ou frameworks existentes, você pode construir seu próprio gerenciador de sessões:
  1. usando cookies
  2. usando IP/UA
  3. usando soquete

A melhor maneira seria primeiro implementá-lo com soquete , por exemplo:
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.
});

Então, você só precisa implementar um middleware que verifique o id.

Se você deseja evitar a session prediction , session sidejacking , etc. você precisa combinar cookies, ip, socket e suas ideias para torná-lo mais seguro para seu aplicativo.

Depois de ter feito seu gerenciador de sessões, você pode escolher onde armazenar as sessões, em um simples object , em redis , em mongodb , em mysql ... (express use MemoryStore por padrão, mas talvez não agora)