Проверка, вошел ли пользователь в passport.js - PullRequest
0 голосов
/ 17 мая 2018

Я использую passport.js для аутентификации пользователя. У меня есть 2 функции, чтобы проверить, вошел ли пользователь в систему или нет. Первая функция:

isLoggedIn(req, res, next) {
        if (req.isAuthenticated()) {
            return next();
        }
        else {
            res.redirect('/');
        }
    }

2-я функция:

isLoggedInCheck(req, res) {
        if (req.isAuthenticated()) {
            return true;
        }
        else {
            return false;
        }
    }

Я беру эти 2 функции в классе под названием Helper. Когда я использую первую функцию (я передаю ее в функции маршрутов как промежуточное ПО), она работает:

var Helper = require('../helpers/helper');
var helper = new Helper();
router.get('/', helper.isLoggedIn, admin.melihat_daftar_venue);

Но когда я хочу использовать вторую функцию:

if (helper.isLoggedInCheck) {
//code
}
else{

}

Функция просто возвращает определение функции вместо true / false. Как это исправить. Спасибо

1 Ответ

0 голосов
/ 17 мая 2018

Вы используете isLoggedIn в качестве промежуточного программного обеспечения ExpressJS, в то время как isLoggedInCheck внутри условия, поэтому вам нужно вызвать функцию (helper.isLoggedInCheck(req, res) внутри, если условие определено внутри get function

if (helper.isLoggedInCheck(req, res)) {
//code
}
else{

}

и первый

router.get('/', helper.isLoggedIn, admin.melihat_daftar_venue);

или (не рекомендуется, просто показывает пример)

router.get('/', (req, res, next) => {
  helper.isLoggedIn(req, res, next)
}, admin.melihat_daftar_venue);
...