У меня есть приложение 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
. Любые советы будут оценены, спасибо!