Повар ie был установлен без атрибута SameSite. ...Но я сделал - PullRequest
0 голосов
/ 01 апреля 2020
A cookie associated with a cross-site resource at http://tetris-back-end.herokuapp.com/ was set without the `SameSite` attribute.

Я получаю эту ошибку, когда пытаюсь установить повара ie на передней панели. Вот как мой повар ie устанавливается на серверной стороне:

const sessionOptions: Options = {
  store: new RedisStore({
    client: redis as any,
  }),
  name: "qid",
  secret: String(process.env.SECRET),
  resave: false,
  saveUninitialized: false,
  cookie: {
    httpOnly: process.env.NODE_ENV === "development",
    secure: process.env.NODE_ENV === "production",
    sameSite: "none",
    maxAge: 1000 * 60 * 60 * 24 * 7 * 365, // 7 years
  },
};

Таким образом, для того же сайта не задано ни одного, но я все еще получаю эту ошибку.

I покопался и утешил мой env узла в моем стартовом сообщении.

app.listen(process.env.PORT, () => {
  console.log(message, `NODE ENV: ${process.env.NODE_ENV} ?`);
  });

Он печатает development локально и production в журналах Heroku.

Когда я устанавливаю повара ie локально, он работает, но я получаю ошибку:

A cookie associated with a resource at http://localhost/ was set with `SameSite=None` but without `Secure`. A future release of Chrome will only deliver cookies marked `SameSite=None` if they are also marked `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5633521622188032.

Так что локально один и тот же код (я на мастере, и все синхронизировано). Он работает, когда я это делаю, но после NODE_ENV === "development" он устанавливает для false значение.

Здесь важно то, что мне кажется, что он УВИДЕТ, что я установил SameSite = None локально, но это НЕ поднимает это на производстве.

Почему тот же атрибут сайта будет распознаваться локально как заданный, но не в производственной сборке ???

Любая помощь будет огромной! Спасибо!

Проверьте бэк-репо.

Проверьте бэк-репо.

1 Ответ

0 голосов
/ 01 апреля 2020

Я прокомментировал объект cook ie в настройках сеанса, и он отлично работал!

Я ссылался на этот пост, который мне помог: Cook ie не установлен с express - сеанс в производстве

const sessionOptions: Options = {
  store: new RedisStore({
    client: redis as any,
  }),
  name: "qid",
  secret: String(process.env.SECRET),
  resave: false,
  saveUninitialized: false,
  // cookie: {
  //   httpOnly: process.env.NODE_ENV === "development",
  //   // secure: process.env.NODE_ENV === "production",
  //   secure: "auto",
  //   sameSite: "none",
  //   maxAge: 1000 * 60 * 60 * 24 * 7 * 365, // 7 years
  // },
};
...