根据您共享的代码量,有些事情看起来不正确:
1。您可能需要交换这些行,以便csrf在路由之前运行。
app.use(app.router);
app.use(csrf());
2。这些线需要放置在路线之前。
app.use(csrf());
app.use(function (req, res, next) {
res.cookie('XSRF-TOKEN', req.csrfToken());
res.locals.csrftoken = req.csrfToken();
next();
});
app.use(app.router);
3。locals.csrftoken
以您的形式使用
<form action="/process" method="POST">
<input type="hidden" name="_csrf" value="<%= csrftoken %>">
Favorite color: <input type="text" name="favoriteColor">
<button type="submit">Submit</button>
</form>