1

When I call req.isAuthenticated() in my local login strategy upon successful login, it always returns true as it should. However, when I try to call req.isAuthenticated in any other file/route in my express server, it always returns false, even when I have a successful login cookie and session. Does anyone have any idea as to why this is? If not, does anyone have any good open source alternatives to passport.js for auth?

Relevant code from express server:

app.use(session({ 
  secret: process.env.AUTH_SECRET,
  resave: false, 
  saveUninitialized:false, 
  cookie: { 
    secure: false,
    expires: cookieExpirationDate
  }
})); // session secret
app.use(passport.initialize());
app.use(passport.session());

...

app.get('/logincheck', (req, res) =>{ //route called by front end component to check auth status
  if(req.isAuthenticated()){ //returns false even with cookie and session in browser 
    res.json({isAuth: true})
  }
  else res.json({isAuth: false})
})

Relevant code from local login strategy:

            var userinfo = user.get(); 
            req.login(user, function(error) {
                if (error) return next(error);
                console.log('success!')
            })
            console.log(req.isAuthenticated()) //always returns true on successful login
            return done(null, userinfo);

I've tried all of the relevant solutions discussed in this issue: passport's req.isAuthenticated always returning false, even when I hardcode done(null, true) so any help is greatly appreciated as I feel like I have been getting nowhere with this problem.

0 Answers0