Код вроде рабочий, но никакого редиректа на главную не происходит, хотя видно, что serializeUser работает:
PASSPORT.JS
passport.serializeUser((user, done) => {
console.log("USER:", user);
done(null, user.id);
});
passport.deserializeUser((id, done) => {
console.log(id);
User.findOne({
where: {id: id}
})
.then(({dataValues: user}) => {
done(null, user);
})
.catch(err => {
done(err, null);
});
});
passport.use(new LocalStrategy((username, password, done) => {
console.log(username)
User.findOne({
where: {username: username}
})
.then(({dataValues: user}) => {
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
User.validPassword(password, user.password)
.then(isMatch => {
if (isMatch) {
return done(null, user);
} else {
return done(null, false, { message: 'Incorrect password.' });
}
})
})
.catch(done);
}));
module.exports = passport;
ROUTING
app.get('/login', (req, res) => {
res.set('Content-Type', 'text/html');
res.render('create_user.pug');
});
app.post('/login', (req, res, next) => {
passport.authenticate('local', function(err, user, info) {
if (err) { return next(err); }
if (!user) {
console.log("REDIRECT", 'login')
return res.redirect('/login');
}
req.logIn(user, function(err) {
if (err) { return next(err); }
console.log("REDIRECT", user)
return res.redirect('/');
});
})(req, res, next);
});
// all
app.get('/*', (req, res, next) => {
if (!req.isAuthenticated()) {
res.redirect('/login');
} else {
next();
}
});
require('./routes/index')(app);