Passport.js req.user объект содержит правильное значение до перенаправления, но становится неопределенным после перенаправления? - PullRequest
0 голосов
/ 30 января 2019

Мой req.user объект становится undefined после перенаправления с использованием passport.authenticate.Он имеет значение до перенаправления.Как предотвратить превращение req.user в undefined?

Файл обработки моего сервера:

app.use(require("express-session")({
   secret: "Hack hai ye hack",
   resave: false,
   saveUninitialized: false
}));
app.use(passport.initialize());

app.use(passport.session());
passport.use('mentor', new LocalStrategy(Mentor.authenticate()));
passport.serializeUser(Mentor.serializeUser());
passport.deserializeUser(Mentor.deserializeUser());
passport.use('team', new LocalStrategy(Team.authenticate()));
passport.serializeUser(Team.serializeUser());
passport.deserializeUser(Team.deserializeUser());
passport.use('admin', new LocalStrategy(Admin.authenticate()));
passport.serializeUser(Admin.serializeUser());
passport.deserializeUser(Admin.deserializeUser());

app.use(function (req, res, next) {
  console.log("print"+req.user);
  res.locals.mentor = req.user;
  res.locals.team = req.user;
  res.locals.admin = req.user;
  next();
});

app.listen(process.env.PORT || 3000, process.env.IP, () => {
    console.log("Port up and running");
});

Мой файл маршрутов:

  router.get("/login", function(req, res){
  	res.render("teamLogin");
  });

  router.post("/login", passport.authenticate("team",
      {
          // successRedirect: "/team/teamDashboard",
          failureRedirect: "/team/login", 
  }),function(req, res) {
          console.log("Display"+req.user);
          res.redirect("/team/teamDashboard")
  });

  router.get("/teamDashboard", function(req, res){
    res.render("teamDashboard");
  });
       function isTeamLoggedIn(req, res, next){
      if(req.isAuthenticated()){
        console.log("Yes")
          return next();
      }
      console.log("No")
      req.flash("error", "You need to be logged in to do that");
      res.redirect("/team/login");
  }

  module.exports = router;

Подобно тому, как маршрут console.log("Display"+req.user); in /login дает правильное значение, но после res.redirect("/team/teamDashboard") значение req.user становится undefined.

Весь импортбыли сделаны, но не упомянуты в вопросе, чтобы сохранить код в чистоте.Некоторые маршруты не были упомянуты по той же причине.

...