Reputation: 1407
I have an Express app that uses express-session
and passport
to keep the session going.
These technologies keep users logged in until they hit a logout button.
But, there is one exception that makes users log out.
I use PM2 to reload my index.js file. The command is below.
pm2 reload all
When I execute the above command, index.js file gets reloaded and everything looks fine.
But, I realized that every time I reload index.js file using this command, logged in users get logged out, which should not happen.
Can anyone tell me how to keep users logged in even after I reload the index.js file?
Some of the code in index.js file:
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());
Upvotes: 0
Views: 5231
Reputation: 8060
Use one of persistent session storage engine. Here is a list https://github.com/expressjs/session#compatible-session-stores
Upvotes: 2