Я занимаюсь разработкой веб-сайта с помощью анализа панели инструментов в node.js с использованием Express. У меня возникли проблемы с connect-session-sequelize, поскольку данные записываются в таблицу сеансов, но как только я закрываю вкладку и открываю новую, моявеб-сайт всегда спрашиваете меня по электронной почте и пароль для входа
//session
const db = new Sequelize('dbname', 'postgres', 'psw', {
host: 'localhost',
port:port,
dialect: 'postgres',
storage: './session.postgres',
});
var myStore = new SequelizeStore({
db:db
})
app.use(session({
secret: 'keyboard cat', // TODO ENV
store: myStore,
resave: false,
saveUninitialized:true,
proxy: true ,
cookie: {
maxAge: new Date(Date.now() + (30 * 86400 * 1000)), // TODO : env --> one hour
sameSite: true,
secure: false // TODO : TRUE IN PRODUCTION*/
}
}))
myStore.sync();
// login
app.post("/login",async (req, res) => {
let email = req.body.email;
let password = req.body.password;
console.log(password);
try {
const user = await newUser.findOne({
raw: true,
attributes: ["password", "administrator", "id"],
where: { email: req.body.username }
});
console.log("id da db " + user.id);
console.log("password da db " + user.password);
const authenticated = await correctPassword(password, user.password);
console.log(authenticated);
if (authenticated === true && user.administrator === false) {
req.session.userId = user.id; // creo l'id per la sessione
res.redirect("/dashboard");
} else {
if (authenticated === true && user.administrator === true) {
req.session.userId = user.id;
console.log('id sessione' + req.session.userId);
console.log('sessione' + req.sessionID)
res.redirect("/adminDashboard");
} else {
res.render("login1", {
user: undefined,
success: true,
successs: true,
error: "Password or Email are incorrect.Try again "
});
}
}
} catch (e) {
res.render("login1", {
user: undefined,
success: true,
successs: true,
error: "Password or Email are incorrect.Try again "
});
}
});
Фактический идентификатор результата: если я уже вошел в систему, я закрываю вкладку, открываю новую и вводю цифру localhost / войдите, чтобы остаться в localhost /войдите в систему, но если я напишу localhost / dashboard (страница после входа в систему), я смогу войти.
Ожидаемый результат: если я уже вошел в систему, я закрываю вкладку, открываю новую ицифра localhost / login она перенаправляет меня в localhost / dashboard