node.js缺少/空CSRF令牌(CSURF npm包)

node.js缺少/空CSRF令牌(CSURF npm包),node.js,express,csrf,csrf-token,Node.js,Express,Csrf,Csrf Token,我的CSRF令牌遇到间歇性问题。大多数情况下它都能工作,但偶尔会在服务器日志中出现无效的CSRF令牌错误。我不知道为什么它会间歇性地工作和不工作。正如您在下面看到的,我们正在使用cookie选项,并将该中间件传递到app.use函数中。当它出错时,我的console.log('CSRF-TOKEN',Cookies.get('CSRF')返回null。当它出错时,我的浏览器几乎处于此错误状态。我必须清除缓存和Cookies,重新登录,然后重试。有人能帮我吗?如果需要,我将尝试提供更多信息 ind

我的CSRF令牌遇到间歇性问题。大多数情况下它都能工作,但偶尔会在服务器日志中出现无效的CSRF令牌错误。我不知道为什么它会间歇性地工作和不工作。正如您在下面看到的,我们正在使用cookie选项,并将该中间件传递到app.use函数中。当它出错时,我的console.log('CSRF-TOKEN',Cookies.get('CSRF')返回null。当它出错时,我的浏览器几乎处于此错误状态。我必须清除缓存和Cookies,重新登录,然后重试。有人能帮我吗?如果需要,我将尝试提供更多信息

index.js

const path = require('path');
const expressStaticGzip = require('express-static-gzip');
const express = require('express');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const csurf = require('csurf');
const helmet = require('helmet');
const config = require('./config');


/**
 * Setup Express app and server settings.
 */
const app = express();

// Setup useful middleware.
app.use(bodyParser.urlencoded({
  extended: true
}));

app.use(bodyParser.json());

app.use(cookieParser());

const csrfMiddleware = csurf({
  cookie: {
    httpOnly: true,
    secure: config.NODE_ENV !== 'local',
    sameSite: true,
  }
});

app.use(csrfMiddleware);


app.get('/**', (request, response) => {
  response.cookie('csrf', request.csrfToken(), {
    secure: config.NODE_ENV !== 'local',
    sameSite: true,
  });
  console.log('req.path', request.path);
  return response.sendFile(path.join(config.rootDir, './public/index.html'));
});


import Cookies from "js-cookie";


  console.log("CSRF TOKEN", Cookies.get("csrf"))
  const response = await fetch("/payment-intent", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-CSRF-Token": Cookies.get("csrf"),
      "X-Stripe-CA": store.connectedAccount,
    },
    body: JSON.stringify(orderDetails),
  });