Node.js спросить пароль для безопасного маршрута - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть пользователь-администратор, и я хочу, чтобы этот пользователь проходил аутентификацию перед доступом к указанному c маршруту, даже если он в данный момент вошел в систему, для этого указанного c маршрута я хочу, чтобы появилось поле пароля и введенный им пароль. должен быть действителен, прежде чем он будет перенаправлен на этот маршрут, как я могу обработать этот тип промежуточного программного обеспечения? У меня уже есть промежуточное ПО для проверки подлинности пользователя, я хочу продолжить проверку подлинности пользователя и администратора, но я также хочу, чтобы пользователь повторно ввел свой пароль перед доступом к странице, как я могу выполнить sh это ?

function isAdmin(req, res, next) {
    if (req.isAuthenticated()) {
        if (req.user.role == 'admin') {
            return next();
        }
        res.redirect('/');
    }
    res.redirect('/login');
}

1 Ответ

0 голосов
/ 02 апреля 2020

На мой взгляд, я бы посоветовал вам добиться этого:

function isAdmin(req, res, next) {
    if (req.isAuthenticated()) {
        //one is authenticated
        //check if they are admin
        if (req.user.role == 'admin') {
            //first confirm the password as you want before re-routing
            const confirmPass; //This will be passed from front-end

            //Lets assume you stored your pass in response as password i.e (res.user.password). 
            if((res.user.password)==confirmPass){
            //move out of the function
            return next();
            }

        } else

        //if role is not admin -> Go to homepage
        res.redirect('/');
    }

    //if not authenticated, go to login.
    res.redirect('/login');
}
//next is here-admin
function confirmedAdmin(req,res){
    //code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...