Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einen Benutzer mit nodeJS angemeldet halten

Sie müssen den Unterschied zwischen einem Express-Server und einem nativen NodeJS-Server verstehen, hier mein Link Vergleich zwischen Nodejs-Server und Express-Server

Sie können also Folgendes tun:

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

Dies ermöglicht es Ihnen, mit NodeJS noch die Low-Level-Funktionalität zu haben.

Wenn Sie also keine vorhandenen Module oder Frameworks verwenden möchten, können Sie Ihren eigenen Sitzungsmanager erstellen:

  1. unter Verwendung von Cookies
  2. unter Verwendung von IP/UA
  3. Socket verwenden

Der beste Weg wäre, es zuerst mit socket zu implementieren , zum Beispiel:

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

oder

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

Sie müssen also nur eine Middleware implementieren, die die ID überprüft.

Wenn Sie die session prediction verhindern möchten , session sidejacking usw. müssen Sie Cookies, IP, Socket und Ihre Ideen kombinieren, um Ihre App sicherer zu machen.

Sobald Sie Ihren Sitzungsmanager erstellt haben, können Sie auswählen, wo die Sitzungen in einem einfachen object gespeichert werden sollen , in redis , in mongodb , in mysql ... (express Verwenden Sie MemoryStore standardmäßig, aber vielleicht nicht jetzt)