Узел csurf на двух отдельных серверах - PullRequest
0 голосов
/ 07 января 2020

У меня есть приложение Next JS, обслуживающее html, которое включает токен csrf через модуль npm csurf https://www.npmjs.com/package/csurf. Затем у меня есть отдельный сервер API, который также имеет модуль csurf.
Оба сервера также используют connect-mongo, настроенный на одну и ту же базу данных для доступа к хранилищу сеансов.

оба сервера выглядят так

app.use(cookie_parser());
const mongo_store = new mongoStore({ url:"mongodb://localhost/solar_project" });
const session_options = {
  name:'solar_project',
  store: mongo_store,
  secret: 'process.env.SESSION_SECRET',
  saveUninitialized: true,
  resave: true,
  cookie: {
    //   secure: false,//this is also the default setting
    //   httpOnly: true,//this is on by default
    expires: new Date(253402300000000) //last loooong time
  }
};


const session_middlesware = session(session_options);
app.use(session_middlesware);
app.use(csurf());

Мой сервер API создает новый сеанс с каждым запросом API и не проходит проверку csrf. ForbiddenError: invalid csrf token

Мне кажется, я что-то упускаю из виду или мне не хватает механизма работы модуля csurf. Любые советы будут оценены, спасибо!

...