微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。