通过护照登录后如何检查当前正在使用哪个用户。 js

时间:2019-03-17 16:18:35

标签: javascript node.js express passport.js

我用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
}

1 个答案:

答案 0 :(得分:2)

  

如果身份验证成功,则将调用下一个处理程序,并将 req.user 属性设置为已身份验证的用户。

PassportJs authenticate