自动redirectlogin用户nodejs passport.js

目前使用node.js,express&passport.js来创build一个自定义的网站/应用程序。

遵循了几个指南,我有一个有效的身份validationlogin/注销系统。 但是,如果用户重新访问并且他们的会话仍处于活动状态,则不会将其redirect到“仪表板”。

当前根路由:

/* GET login page. */ router.get('/',function(req, res) { // Display the Login page with any flash message, if any res.render('index', { message: req.flash('message') }); }); 

我正在使用isAuthenticated函数,如下所示:

 var isAuthenticated = function (req, res, next) { if (req.isAuthenticated()) return next(); res.redirect('/'); } 

我如何获得它自动redirect用户与现有的会议? 任何指针最受欢迎!

好的,我明白了。 在/路由中,我查询是否设置了req.user

 /* GET login page. */ router.get('/',function(req, res) { if(req.user){ res.redirect("/dashboard"); }else{ // Display the Login page with any flash message, if any res.render('index', { message: req.flash('message') }); } }); 

你可以使用“/”端点来附加一个中间件。

 router.get('/', sessionValidate, function(req, res, next) { res.render('login'); }); 

sessionValidate看起来像这样:

 function sessionValidate(req,res,next){ console.log(req.user,"i am here"); users.findById(req.user,function(err, user) { if(user!=null){ req.session.user = user; res.locals.user=user; res.redirect("/home") } else { next(); } }); }