我用password.js编写了一个登录系统 不同的用户组将被路由到不同的路径。
router.post('/signin', passport.authenticate('local', {
failureRedirect: '/fail',
failureFlash: true
}),
(req, res) => {
//if sucess
if (req.body.group == 'GroupA'){
res.redirect('/groupa');
}
else if (req.body.group == 'GroupB') {
res.redirect('/groupb');
}
else {
res.redirect('/groupc');
}
}
我可以成功地转到其他路线, 但登录后我基本上无法更改URL上的路径以输入其他路由 (例如,以GroupA身份登录,然后输入http://localhost/groupb,我可以输入该路由) 我执行的“ ensureAuthenticated”功能只能检查用户是否登录,而不能与哪个用户登录,那么如何避免用户转到其他人的路径呢? (确保已通过偏好验证)
function ensureAuthenticated(req, res, next){
if(req.isAuthenticated()) {
console.log(req.body.username);
return next();
}
else {
console.log('You haven\'t login');
res.redirect('/'); //back to login page
}