使用enctype =“ multipart / form-data”以CSRF错误结束

时间:2018-12-13 17:56:23

标签: node.js forms csrf multer

我正在使用multer和csurf软件包。
问题是,当我在表单中添加enctype="multipart/form-data"时,会收到无效的csrd令牌。

app.js

// CSRF BEFORE ROUTES!!!
app.use(bodyParser.urlencoded({
  extended: false
}))
app.use(cookieParser())
app.use(csrf());
app.use(function (req, res, next) {
  res.locals.csrfToken = req.csrfToken();
  next();
});

// Routes
app.use("/", webRoutes);
app.use("/cms", cmsRoutes);

我的部分用户路由位于cmsRoutes内

router.post("/edit", isAuthenticated, upload.single('avatar'), profile.user_edit_profile);

我发现其他人也有同样的问题。但是找不到任何解决方案。

1 个答案:

答案 0 :(得分:0)

已解决。只需要将MULTER放在CSRF之前。