javascript – CSURF Angular Implementation

我一直在尝试对我一直在做的个人项目进行csurf实现.当我没有使用像Jade或EJS这样的模板引擎时,我一直在搜索google以试图找出如何在表单上实现csurf.我的快递服务器也没有直接渲染页面,但主要是返回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="">

解决方法:

在控制器中,您需要将局部变量设置为等于csrf cookie的值

例如

.controller('YourCtrl', function($cookies, $scope) {
    $scope.csrftoken = $cookies._csrf
  }
);

要使该示例生效,您需要包含ngCookies模块,因此在index.html中包含类似的内容

<script src="bower_components/angular-cookies/angular-cookies.js"></script>

然后将依赖项“ngCookies”添加到您的模块中.

相关文章

根据官网 入门 express
java叫接口control什么的app.get.post等等都是请求方式我们可...
为了前端丢进去的时候可以直接判断中间件就是经过了这个就会...
Express 文件的上传和下载
运行命令下载app.js 增加中间件。
基本模板来的 后面用后就有什么加什么都行。