我正在使用 MEAN stack
编写一个单页面应用程序,并使用 express-session
和 redis
进行 session 管理。
我想在客户端的 cookie 中使用 scrf token 。
问题是当我添加csurf
中间件时,它在redis中设置了一个名为csrfSecret
的 session ,但是如何将其以cookie形式发送给客户端?
中间件:
app.use(csrf({}));
app.use(function(req, res, next) {
res.cookie('csrf-token', req.csrfToken());
return next();
});
和 csrf-token
正在发送到客户端,但它没有执行任何操作。我从模块收到 403 错误。
感谢您的任何回答或想法。
最佳答案
如果您想在客户端中创建 csrf cookie,则必须使用以下命令:
app.use(csrf({ cookie: true })
这将在客户端中创建一个 token 。如果您不向 csrf 函数传递任何选项,它将使用 req.session
。如果您想在客户端保存 cookie,请记住您将需要使用 cookie-parser
模块。
您可以在该项目的 github 链接中找到更多信息:https://github.com/expressjs/csurf
关于node.js - 在 Express 中使用 csurf 和 session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36872070/