node.js缺少/空CSRF令牌CSURF npm软件包

问题描述

我的CSRF令牌出现间歇性问题。在大多数情况下,它都能正常工作,但有时我的服务器日志中会收到无效的CSRF令牌错误。我不确定为什么它会间歇性地工作,而不会间歇地工作。如下所示,我们正在使用cookie选项,并将该中间件传递给app.use函数。在发生错误的时间,我的console.log('CSRF TOKEN',Cookies.get('csrf')返回null。发生错误时,几乎就像我的浏览器处于这种错误状态一样。清除我的缓存和cookie,重新登录,然后尝试重试。有人可以帮忙吗?如果需要,我会尝试提供更多信息

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',});
  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),});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)