Я создаю приложение nodejs (экспресс), используя пользовательскую модель для комментирования и т. Д.
Для определенных действий пользователь должен иметь учетную запись и должен войти в систему. Я использую промежуточное программное обеспечение (функция isLoggedIn), чтобы проверить, вошел ли пользователь в систему. Сначала я сделал это с помощью формы, которая отображается, если вы переходите к / логин маршрут. Вместо того, чтобы использовать маршрут, я хочу использовать модал начальной загрузки, который появляется.
Это моя форма входа в систему, которая отображается при вызове модального режима:
<form action="/login" method="POST">
<div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-labelledby="loginModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="loginModalTitle">Login</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-group" id="formGroupLogin">
<input type="email" class="form-control" name="username" placeholder="E-Mail" required>
<input type="password" class="form-control" name="password" placeholder="Passwort" required>
</div>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-primary btn-block" value="Login">
</div>
</div>
</div>
</div>
</form>
Он отлично работает, когда я помещаю это на свою панель навигации, так что она вызывается при нажатии кнопки «Войти» на панели навигации.
Но как я могу вызвать этот мод, если я хочу перейти к форме входа в систему промежуточного программного обеспечения, которая проверяет, прошел ли аутентификация пользователя?
Раньше я делал это путем маршрутизации к маршруту, который показывает форму входа в систему (используя res.redirect ("/ login"). Теперь я не хочу маршрутизировать, мне просто нужно расширить модальный.
Вот так выглядело мое промежуточное ПО:
function isLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
return next();
}
res.redirect("/login");
}
Как мне это изменить? Есть идеи?