Я разрабатываю приложение 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
в пути к домашней странице. Не знаю, почему это так.