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

At holde en bruger logget ind med nodeJS

Du skal forstå forskellen mellem en express' server og en native NodeJS' server, her er mit link sammenligningsnodejs-server vs ekspresserver

Så du kan gøre:

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

Dette gør det muligt for dig stadig at have lavt niveau funktionnaly med NodeJS.

Så hvis du ikke ønsker at bruge eksisterende moduler eller rammer, kan du bygge din egen session manager:

  1. brug af cookie
  2. ved at bruge IP/UA
  3. ved hjælp af socket

Den bedste måde ville være først at implementere det med socket , for eksempel:

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

eller

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

Så du skal bare implementere en middleware, der tjekker id'et.

Hvis du vil forhindre session prediction , session sidejacking osv. skal du kombinere cookies, ip, socket og dine ideer for at gøre det mere sikkert for din app.

Når du har gjort din session manager, kan du vælge, hvor du vil gemme sessionerne, i et simpelt object , i redis , i mongodb , i mysql ... (express brug MemoryStore som standard, men måske ikke nu)



  1. Sådan installeres og konfigureres MySQL på Ubuntu

  2. Indeks spænder over flere tabeller i PostgreSQL

  3. Slet forælder, hvis det ikke er refereret af et andet barn

  4. Hvorfor anses det for dårlig praksis at bruge markører i SQL Server?