我一直在尝试在一个个人项目上实现csurf。我已经通过搜索谷歌了解到如何在没有像Jade或EJS这样的模板引擎时,在表单上实现csurf。我的express服务器也不是直接渲染页面,而是主要返回JSON数据。我的前端所有内容都被引用如下:
app.use(express.static(__dirname + '/www'));
我使用 csurf 的服务器代码如下:
app.use(csurf());
app.use(function (req, res, next) {
res.cookie('XSRF-TOKEN', req.csrfToken());
next();
});
在表单的前端,HTML输入字段看起来像这样。我还使用AngularJS,根据我看到的示例,我所要做的就是这样。
<input type="hidden" name="_csrf" value="{{csrftoken}}">
我在终端中遇到了以下错误:
Error: invalid csrf token
如果我检查隐藏的输入,会显示以下内容。
<input type="hidden" name="_csrf" value="">