Проверка, авторизован ли пользователь в паспорте .js

Я использую password.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{

}

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

попробуйте if (helper.isLoggedInCheck(req)) {

Arif Khan 17.05.2018 12:47

нет, он возвращает ошибку

jordie_f 17.05.2018 12:51

см. подробный ответ ниже, какую ошибку вы получаете

Arif Khan 17.05.2018 12:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
160
1

Ответы 1

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

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);

но req и res должны быть инициализированы перед передачей в isLoggedInCheck. Как инициализировать httpreq (req) и здесь ответ? @ Ариф Хан

jordie_f 17.05.2018 15:54

Другие вопросы по теме