Я следующий кода для обработки signin
запроса с использованием PassportJS для проверки подлинности/авторизации пользователя:PassportJS не пересылает после пользователь аутентифицирован
app.post('/signin', function(req, res, next) {
passport.authenticate('local-login', function(err, user, info) {
if (err) {
return next(err);
}
if (!user) {
return res.json(info);
}
req.logIn(user, function(err) {
if (err) {
return next(err);
}
res.redirect('/user'); //not redirecting to /user
});
})(req, res, next);
});
Но это не перенаправление /user
, когда пользователь находится.
Может ли кто-нибудь помочь мне понять, почему это не перенаправляет?
Он записывается на консоль, когда я делаю это перед линией перенаправления. Я делаю перенаправление на данный момент из переднего конца, отправив json-ответ из вышеприведенной функции. – skip
Вы используете угловой или что-то в этом роде? Или вы используете серверные представления? Если вы используете угловое или еще много чего, и у вас есть другой фрагмент кода, перехватывающий ваш запрос, тогда запрос не будет проходить, потому что вы должны прочитать его в своем интерфейсном коде и сделать там переадресацию. – rdegges
@rdeggs: Я отправляю запрос с использованием службы '$ http' из' ejs', используя AngularJS. Я делаю это так: app.post ('/ signin', function (req, res, next) { passport.authenticate ('local-login', function (err, user, info) { if (err) {return next (err);} if (! user) {return res.json (info);} req.logIn (пользователь, функция (ошибка) { if (err) {return next (err);} res.json ({user: user}); }); }) (req, res, next); }); 'и затем выполняет перенаправление с контроллера AngularJS. – skip