Использование сеанса connect-session-sequelize не является постоянным - PullRequest
1 голос
/ 08 мая 2019

Я занимаюсь разработкой веб-сайта с помощью анализа панели инструментов в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...