невозможно вызвать аутентификацию паспорта после добавления параметров запроса в URL-адрес запроса - PullRequest
0 голосов
/ 18 июня 2020

Я разрабатываю приложение node js. Я использую механизм аутентификации по паспорту для входа по OID C. У меня есть путь запроса домашней страницы, который параметризован, как показано ниже

app.get('/:domain', function (req, res) {
  oicdcstratergy2.domain = req.params.domain;
  oicdcstratergy1.domain = req.params.domain;
  req.params.domain = undefined
  console.log(`Inside the home page callback - sessionID = ${req.sessionID}, domain= ${oicdcstratergy2.domain}`)
  res.render('index', {authenticated:req.isAuthenticated()});
});

, а файл index.e js выглядит следующим образом

<form>
    <% if (authenticated)  {%>
    <button type="submit" class="btn btn-primary btn-lg" formaction="/logout">SignOut</button>
    <button type="submit" class="btn btn-primary btn-lg" formaction="/getAPIResponse">access API</button>
    <% } else {%>
        <button type="submit" class="btn btn-primary btn-lg" formaction="/login2">SignIn</button>
    <%}%>

</form>

Когда домашняя страница отображается, я увижу только кнопка входа в систему, действие которой заключается в вызове пути / login2

/ login2 выглядит следующим образом

app.use('/login2', passport.authenticate('APIGatewayLogin'));

этот путь login2 должен перенаправлять на страницу входа на сервер авторизации. Но этого не происходит, вместо этого он идет по пути http://localhost:4004/login2? и останавливается на домашней странице. Он перенаправляет на сервер авторизации, если я удалю параметр запроса /:domain в пути к домашней странице. Не знаю, почему это так.

...