В моем приложении Node.js (я использую express 4.x) Я хочу проверить, зарегистрирован ли пользователь. Если пользователь не зарегистрирован, я хочу перенаправить на мою страницу входа. Тогда я, что в ПО промежуточного слоя, как это:Узел js слишком много перенаправления с использованием перенаправления промежуточного слоя
Server.js
app.use(function (req, res, next) {
// if user is authenticated in the session, carry on
if (req.isAuthenticated())
return next();
// if they aren't redirect them to the home page
res.redirect('/login');
});
Войти маршрут
// Login page
app.get('/login', function(req, res){
res.render('pages/login', {
error : req.flash('loginError'),
info : req.flash('info'),
success : req.flash('success')
});
});
Но когда я добавить этот код в моем промежуточного слоя, страница Логин называется более 30 раз ... И мой браузер говорит Too many redirect
.
Вы знаете, почему моя страница входа в систему называется много?
ли req.isAuthenticated() также призвал к «/ входа»? Потому что это бесконечный цикл. –
Я отредактировал мой вопрос. req.authenticated также не вызван для/login. Но я попытался удалить 'if (req.isAuthenticated()) return next();' для проверки. Я просто позволю 'res.redirect ('/ login');' и у меня такая же ошибка. – John
Проверьте промежуточное ПО, если текущий путь - 'login', не перенаправляйте так. И для лучшего случая, вызовите 'next' после перенаправления –