Регистрация пользователей после регистрации с использованием passport

#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. Это было! Большое спасибо!