#javascript #node.js #mongodb #express #passport.js
#javascript #node.js #mongodb #экспресс #passport.js
Вопрос:
После регистрации пользователя я бы хотел, чтобы он автоматически входил в систему. Я читал в Интернете, чтобы использовать req.login(), но, похоже, он не работает. Пользователь добавляется в базу данных, но не входит в систему. Может ли кто-нибудь указать мне правильное направление?
if(type == 'student'){
User.saveStudent(newUser, newStudent, function(err, user){
console.log('Student saved');
req.login(newUser, function(err) {
if (err) {
console.log(err);
}
})
})
} else {
User.saveInstructor(newUser, newInstructor, function(err, user){
console.log('Instructor saved');
req.login(newUser, function(err) {
if (err) {
console.log(err);
}
});
})
}
res.redirect('/classes');
}
});
module.exports = router;
Комментарии:
1. Все ли ваши
app.use
настройки настроены правильно для сеанса, файлов cookie, инициализации паспорта и т. Д.? Можете ли вы опубликовать этот код, если вы не уверены? Работает ли вход в систему после регистрации (я имею в виду, используя обычный рабочий процесс входа для возвращающегося пользователя)?2. Просто обновил его с помощью app.js Я думаю, что я включил все. Да, я могу войти в систему после регистрации.
Ответ №1:
О, я вижу, что происходит. Вы выполняете res.redirect()
внешний обратный вызов, где вы сохраняете пользователя. Вероятно, это перенаправление до установки файла cookie для входа.
Переместите res.redirect()
в обратный вызов res.login(), и у вас все должно быть хорошо.
Комментарии:
1. Это было! Большое спасибо!