У меня есть роутер /register
для регистрации пользователя. Для простоты я использую cookie-session
(аналогично) вместо express-session
.
Я застрял в той части, где мне нужно аутентифицировать пользователя при регистрации. Меня смущает функциональность req.sessions.save()
и req.login()
. Я знаю, что req.login()
предоставляется в паспорте. js, но я не понимаю, какой из них предоставляет объект req.session.
Я новичок в паспорте. js и прочитал множество статей, видео и вопросов StackOverflow, чтобы пополнить свои знания. Честно говоря, паспортная документация до сих пор доставляла немало хлопот. Я все еще не понимаю, как должно работать инициирование сеанса при регистрации. Во многих статьях пропущена часть регистрации. Поэтому я прошу помощи в том, как это сделать.
router.post('/register', (req, res, next) => {
console.log(req.body)
User.findOne({email: req.body.email}).then((currentUser) => {
if(currentUser){ // already exists
res.render('login')
} else { // if not, create user in our db
new User({
email: req.body.email
}).save().then((newUser) => {
passport.authenticate('local')(req, res, () => {
//>>>> //**This is where I don't know what to do**
req.session.save((err) => {
if (err) {
return next(err)
}
res.redirect('http://localhost:3000')
})
})
});
}
});
})