Проблема повторной аутентификации с помощью passport.js после выхода из системы - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть приложение, интегрированное с Azure AD.Пользователи B2C и B2B могут войти в это приложение в первый раз.Если мы нажмем кнопку «Выйти» и попытаемся войти в систему снова, вход не удастся.

Приложение использует для входа passport.js и стратегию OIDC.При попытке повторной аутентификации через passport.authenticate (..) он перенаправляется на URL-адрес, определенный как failRedirect.** Обратите внимание, что если я попытаюсь через 10-15 минут сказать, логин работает нормально, как и ожидалось.Он периодически прерывается.

Не могли бы вы сообщить мне, если кто-нибудь видел эту похожую проблему.Я использую «паспорт версии 0.4.0»

Дайте мне знать, если требуется какая-либо информация.

Спасибо

1 Ответ

0 голосов
/ 03 января 2019

Вы можете использовать Пользовательские обратные вызовы , чтобы динамически генерировать URL-адреса обратных вызовов и избежать этой проблемы.

    app.post('/login', function(req, res, next) {
  passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err); }
    // Redirect if it fails
    if (!user) { return res.redirect('/login'); }
    req.logIn(user, function(err) {
      if (err) { return next(err); }
      // Redirect if it succeeds
      return res.redirect('/users/' + user.username);
    });
  })(req, res, next);
});

В Stackoverflow есть много пользователей, которые задали этот же вопрос, поэтому я бы посоветовал взглянуть на некоторые из этих вопросов (например, этот , этот один , и этот один ), если вы еще этого не сделали.

Также убедитесь, что URL-адрес ответа / RedirectURI в вашем коде совпадает с тем, что вы указали при регистрации приложения в Azure AD.

...