У меня есть этот простой код, часть POST которого в значительной степени соответствует паспортной документации:
authRouter.route('/signIn').get((req, res) => {
res.render('signIn', {
nav,
props,
title: 'Sign In'
});
})
.post(passport.authenticate('local'), function(req, res) {
debug(`${chalk.redBright('authenticated')}`);
// If this function gets called, authentication was successful.
// `req.user` contains the authenticated user.
res.redirect('/auth/profile');
});
Но независимо от ответа HTTP (200, 304 и т. д.) никогда не перенаправляется. Я также пытался использовать методы successRedirect и failureRedirect с тем же результатом.
Вот мой маршрут для авторизации/профиля:
authRouter.route('/profile')
.all((req, res, next) => {
if (req.user) {
next();
debug(req.user)
} else {
res.redirect('/');
}
})
.get((req, res) => {
res.json(req.user);
});
return authRouter;
}
В этом случае res.redirect работает отлично.
Это в Windows, но у меня есть почти идентичная реализация в проекте Ubuntu, который, похоже, работает нормально. Я уверен, что здесь есть что-то основное, чего я не понимаю, но я смотрю на это уже несколько дней и просто не могу понять. Любая помощь будет принята с благодарностью.
1 ответ
Хорошо, спасибо за ответы. Я понял это, и я чувствую себя действительно глупо. Я использовал шаблон Bootstrap, который прикреплял скрипт как часть класса CSS. Я даже не знал, что ты так умеешь. Таким образом, несмотря на то, что я делал прямую публикацию, похоже, что скрипт выполнял вызов XHR, вероятно, поэтому это выглядело так, и два человека предложили это. Я очень ценю ответы. Было довольно трудно увидеть, что происходит. Похоже, что Firefox по-прежнему лучше подходит для отладки в некоторых отношениях.
Похожие вопросы
Новые вопросы
node.js
Node.js — это основанная на событиях, неблокирующая, асинхронная среда выполнения ввода-вывода, использующая движок Google V8 JavaScript и библиотеку libuv. Он используется для разработки приложений, которые интенсивно используют возможность запуска JavaScript как на стороне клиента, так и на стороне сервера и, следовательно, выигрывают от возможности повторного использования кода и отсутствия переключения контекста.