我正在使用MEAN stack
编写单页应用程序,并使用express-session
和redis
进行会话管理。
我想在客户端的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错误。
感谢您的任何回答或想法。
答案 0 :(得分:2)
如果要在客户端中创建csrf cookie,则必须使用以下内容:
app.use(csrf({ cookie: true })
这将在客户端中创建一个令牌。如果您没有将任何选项传递给csrf函数,它将使用req.session
。如果要保存cookie客户端,请记住,您将需要使用cookie-parser
模块。
您可以在项目的github链接中找到更多信息:https://github.com/expressjs/csurf