自动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(); } }); }