Search code examples
node.jsmongodbexpressherokupassport.js

Passport.js Logged out on refresh


Having a strange passport.js issue. Only on the production level (works perfectly locally) my users are being logged out if they refresh/change pages. Seems like they are somehow logged out as soon as they log in. So when they go to change pages the isLoggedIn Middleware kicks them out.

Strange issue as it started occurring randomly with no change in the code below for over a year. Help?

// PASSPORT CONFIGURATION
app.use(require("express-session")({
secret: "hello",
cookie: { maxAge: 7500000 },
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

======

//IS THE USER LOGGED IN? MIDDLEWARE
function isLoggedin(req, res, next){
if(req.isAuthenticated()){
return next();
}
req.flash("error", "Please Login First");
res.redirect("/");
}

Solution

  • I'll keep this up in case anyone has a similar issue. Turns out this was caused by Heroku. I switched my dynos from "Hobby dynos" to "Professional dynos" and for some reason this issue started. Switching back to Hobby solved the issue.