Аутентификация без паспорта - PullRequest
0 голосов
/ 14 сентября 2018

Я использую активный каталог для аутентификации пользователей, поэтому я подумал, что мне не нужно использовать Passport, и все, что мне нужно будет сделать, это после того, как пароль извлечен, это создать глобальный (?) Логический тип с res. местные жители, чтобы указать, что пользователь был аутентифицирован.

Я пробовал что-то подобное в функции контроллера:

ad.authenticate(username,password, function(err,auth) {

    //some of the things I tried unsuccessfully -- should be true after logged in
    res.locals.auth = auth
    app.locals.auth = auth //app not defined 

})

Однако я обнаружил, что когда я вызываю более позднюю функцию, проверяющую, вошел ли пользователь как часть промежуточного программного обеспечения для diff-маршрута, res.locals.auth и app.locals.auth имеют значение false или undefined. Я попытался установить обе переменные в моем файле server.js в начале с приведенным ниже кодом, но это тоже не сработало ...

 app.use((req, res, next) => {
  app.locals.auth = false;
  res.locals.auth = false;
  next();
});

Итак, мой вопрос: в каком вар / где я должен сохранять аутентифицированный статус? Или я должен просто использовать паспорт вместо этого, потому что есть некоторая проблема безопасности, о которой я не знал? Какой смысл isMemberOf в примере настройки паспорта?
https://www.npmjs.com/package/passport-activedirectory

Все, что я хочу сделать, это просто проверить учетные данные пользователя и в основном воссоздать req.isAuthenticated в Passport, потому что я не мог понять, как его использовать из-за isMemberOf.

1 Ответ

0 голосов
/ 14 сентября 2018

Обычно сервер отправляет обратно токен, содержащий некоторые полезные данные (идентификатор пользователя или сеанса, срок действия), либо с помощью файлов cookie, либо с помощью JWT (веб-токен json).

Затем клиент помещает токен в каждый запрос к серверу. Сервер проверяет срок действия и обрабатывает запросы.

Файлы cookie будут автоматически добавлены браузером в запрос. JWT должен быть помещен в запрос вашим клиентским кодом.

...