Express VueJS和快速传递csrf令牌到post

Express VueJS和快速传递csrf令牌到post,express,vue.js,axios,Express,Vue.js,Axios,我在后端使用VueJS(cli3)和axios,以及NodeJS-ExpressJS。我正在尝试使用CSRF令牌保护我的post用户编辑 Vue视图(编辑用户-焦点到mySubmitEd): 获取用户的后端控制器: controller.getOneUser = function(req, res) { User.findOne({ _id: req.params.userId }).exec(function(err, user) { res.json({user, csrfTok

我在后端使用VueJS(cli3)和axios,以及NodeJS-ExpressJS。我正在尝试使用CSRF令牌保护我的post用户编辑

Vue视图(编辑用户-焦点到mySubmitEd):

获取用户的后端控制器:

controller.getOneUser = function(req, res) {
  User.findOne({ _id: req.params.userId }).exec(function(err, user) {
    res.json({user, csrfToken: req.csrfToken()});
  });
};
后端更新帖子:

controller.updateUser = function(req, res) {
  User.findById(req.body._id, function(err, user) {
    user.set({
      name: req.body.name,
      last_name: req.body.last_name,
      permalink: req.body.permalink,
      price: req.body.price
    });
    user.save();
    res.send(user);
  });
};
NodeJS exress控制台中的我的错误:

ForbiddenError: invalid csrf token
我在浏览器中的错误:

POST http://localhost:7000/api/update-user 403 (Forbidden)
我不知道发生了什么,因为我在网络选项卡(chrome)中看到csrf令牌在标题和我发送的内容(例如)中是相同的:

我不知道我错过了什么。我找不到问题出在哪里


如果您需要更多信息,请让我帮助您。

我必须正确地将cookie的标题传递给您,因此我做了两个更正:

Vue视图中的第一个:

我通过了认证:

axios.create({withCredentials: true}).get(...)

第二,在路由之前的server.js文件中,我将:

...
const corsOptions = {
    origin: 'http://localhost:8080',
    credentials: true,
}
app.use(cors(corsOptions));

app.use(bodyParser.json());
app.use(cookieParser());
const csrfProtection = csurf({ cookie: true });
app.use(csrfProtection);

app.use(function (req, res, next) {
    res.cookie('XSRF-TOKEN', req.csrfToken());     
    res.locals._csrf = req.csrfToken();
    next();
});
...
X-CSRF-TOKEN: PddyOZrf-AdHppP3lMuWA2n7AuD8QWFG3ta0
_csrf: "PddyOZrf-AdHppP3lMuWA2n7AuD8QWFG3ta0"
axios.create({withCredentials: true}).get(...)
axios.create({withCredentials: true}).post(...)
...
const corsOptions = {
    origin: 'http://localhost:8080',
    credentials: true,
}
app.use(cors(corsOptions));

app.use(bodyParser.json());
app.use(cookieParser());
const csrfProtection = csurf({ cookie: true });
app.use(csrfProtection);

app.use(function (req, res, next) {
    res.cookie('XSRF-TOKEN', req.csrfToken());     
    res.locals._csrf = req.csrfToken();
    next();
});
...