Как проверить, какой пользователь в данный момент пользуется после авторизации через паспорт JS - PullRequest
1 голос
/ 17 марта 2019

Я написал систему входа в систему с помощью passport.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, и я могу ввести этот маршрут) Функция «verifyAuthenticated», которую я сделал, может только проверять, вошел ли пользователь в систему, но не с каким пользователем, так как я могу избежать такой проблемы, когда пользователь идет по пути других? (обеспечить аутентификацию для предпочтения)

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 Ответ

2 голосов
/ 17 марта 2019

Если аутентификация прошла успешно, будет вызван следующий обработчик, и для аутентифицированного пользователя будет установлено свойство req.user .

PassportJs аутентифицируется

...