Экспресс-сессия cookie с реакцией - PullRequest
0 голосов
/ 03 декабря 2018

У меня проблема с экспресс-сессией, я сохранил сеанс с mysql, который работает нормально:

app.use(
      session({
        store: new MySQLStore({ createDatabaseTable: true }, bdd),
        secret: process.env.COOKIE_SECRET,
        cookie: { secure: false, maxAge: 30 * 24 * 60 * 60 * 1000 },
        resave: false,
        saveUninitialized: false
      })
);

После этого, когда пользователь входит в систему, я проверяю информацию для входа (эта работа) и создаюинициализирован сеанс с некоторыми переменными:

if (isGoodPass) {
        // pass ok, init session values
        req.session.userid = bdduser.id;
        req.session.email = requser.email;
        req.session.pseudo = bdduser.pseudo;
        console.log("logid : ", req.session.id);
        res.status(200).send("oui");
} 
else res.status(404).send("non");

Это тоже работа.Сеанс хорошо хранится в базе данных, значения инициализируются, ок.После этого я тестирую сеанс с этим маршрутом:

app.get("/bla", (req, res) => {
    res.setHeader("Content-Type", "text/plain");
    if (req.session == null) {
      console.log("pas de session");
      res.status(200).send("pas de session");
    } else {
      console.log("sessid :", req.session.id);
      res.status(200).send("id :" + req.session.userid);
    }
});

При появлении проблем мой код реакции вызывает маршрут / bla следующим образом:

const response = await axios.get("http://localhost:8080/bla", {
        withCredentials: true
 });

, и на сервере включены cors:

app.use(
  cors({
    origin: "http://localhost:3000", // my react domain
    credentials: true
  })
);

например, когда я захожу на сервер, печатаю сеанс с идентификатором сеанса, тот же идентификатор сеанса хорошо сохраняется в базе данных.Но когда я вызываю маршрут / bla, сервер печатает другой идентификатор сеанса (кажется, что он не может получить cookie из запроса клиента), и каждый раз, когда я вызываю / bla, печатается новый идентификатор сеанса ..Я просмотрел все связанные темы, включил учетные данные и т. Д., Но это не сработало.

Спасибо за потраченное время.

...