在快递中使用csurf和session

时间:2016-04-26 17:41:31

标签: node.js session cookies csrf express-session

我正在使用MEAN stack编写单页应用程序,并使用express-sessionredis进行会话管理。

我想在客户端的cookie中使用scrf令牌。

问题是当我添加csurf中间件时,它在redis中设置名为csrfSecret的会话,但是如何将其以cookie的形式发送给客户端?

中间件:

 app.use(csrf({}));

 app.use(function(req, res, next) {
     res.cookie('csrf-token', req.csrfToken());
     return next();
 });

csrf-token正在发送给客户,但它没有做任何事情。我从模块收到403错误。

感谢您的任何回答或想法。

1 个答案:

答案 0 :(得分:2)

如果要在客户端中创建csrf cookie,则必须使用以下内容:

app.use(csrf({ cookie: true })

这将在客户端中创建一个令牌。如果您没有将任何选项传递给csrf函数,它将使用req.session。如果要保存cookie客户端,请记住,您将需要使用cookie-parser模块。

您可以在项目的github链接中找到更多信息:https://github.com/expressjs/csurf