Странная ситуация - вроде авторизация рабочая, но при первой проверке авторизации пользователь считается не авторизированным.
Как все происходит ( захожу на страницу логин ):
// запуск сервера
Executing (default): CREATE TABLE IF NOT EXISTS `Sessions`
// перешел на страницу логина
Executing (default): SHOW INDEX FROM `Sessions`
Executing (default): SELECT `sid`,
// нажимаю кнопку логин
Executing (default): SELECT USER
USER IS CORRECT
USER: {...} // serialize user
USER IS AUTHENTICATED
Executing (default): SELECT `sid`
Executing (default): SELECT `sid`
Executing (default): UPDATE `Sessions`
// срабатывает success redirect в Passport.js
CHECK AUTH FALSE
Executing (default): UPDATE `Sessions`
Executing (default): SELECT `sid`
USER ID: 18ea8856-af53-4386-a094-7a93989f86fb // deserialize user
Executing (default): SELECT USER BY ID
Executing (default): UPDATE `Sessions`
И перекидывает обратно на логин, но req.user есть, и если потом перейти на другую вкладку то он считается авторизированным и req.isAuthenticated == true, а если еще раз залогинится, то нормально перекидывает на главную.
// ROUTER
app.get('/login', authRouter.login.get);
app.post('/login', authRouter.login.post);
app.get('/sign-up', authRouter.authorize.get);
app.post('/sign-up', authRouter.authorize.post);
// check auth
app.get('/*', authRouter.checkAuth);
app.get('/logout', authRouter.logout);
app.get('/', frontpageRouter.get);
// ПРОВЕРКА ПОЛЬЗОВАТЕЛЯ
module.exports.checkAuth = (req, res, next) => {
if (!req.isAuthenticated()) {
console.log("CHECK AUTH FALSE");
res.redirect('/login');
} else {
console.log("CHECK AUTH TRUE");
next();
}
}
// LOGIN
module.exports.login = {
get: (req, res) => {
res.set('Content-Type', 'text/html');
res.render('sign_in.pug', {
user: req.user
});
},
post: passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' })
}
В остальном стандартный паспорт могу и его кинуть, но все же что же не так, авторизация же рабочая, но при первом входе проблемы. Буду рад всем советам)