Tengo una aplicación Express que usa express-session y el passport para mantener la sesión en marcha.
Estas tecnologías mantienen a los usuarios conectados hasta que presionan un botón de cierre de sesión.
Pero, hay una excepción que hace que los usuarios cierren sesión.
Uso PM2 para recargar mi archivo index.js. El comando está abajo.
pm2 reload all
Cuando ejecuto el comando anterior, el archivo index.js se vuelve a cargar y todo se ve bien.
Pero me di cuenta de que cada vez que vuelvo a cargar el archivo index.js con este comando, los usuarios que inician sesión se desconectan, lo que no debería suceder.
¿Alguien puede decirme cómo mantener a los usuarios conectados incluso después de volver a cargar el archivo index.js?
Parte del código en el archivo index.js:
var express = require("express"); var app = express(); var cookieParser = require("cookie-parser"); var bodyParser = require("body-parser"); var session = require("express-session"); passport.serializeUser(function(user, done) { done(null, user.email); }); passport.deserializeUser(function(username, done) { findByUsernameDb(username, function(err, user) { if (err) { return done(err); } done(err, user); }); }); passport.use("login", new LocalStrategy({ usernameField: "email", passwordField: "password" }, function(username, password, cb) { findByUsernameDb(username, function(err, user) { if (err) { return cb(err); } if (!user) { return cb(null, false, { message: "Incorrect email." }); } bcrypt.compare(password, user.password, function(err, res) { if (res) { return cb(null, user); } else { return cb(null, false, { message: "Incorrect password." }); } }); }); } )); app.use(cookieParser('hello')); app.use(bodyParser.urlencoded({ extended: false })); app.use(session({ secret: 'world', resave: true, saveUninitialized: true })); app.use(flash()); app.use(passport.initialize()); app.use(passport.session());Utilice uno de los motores de almacenamiento de sesiones persistentes. Aquí hay una lista https://github.com/expressjs/session#compatible-session-stores