node.js - 在 Express 中使用 csurf 和 session

标签 node.js session cookies csrf express-session

我正在使用 MEAN stack 编写一个单页面应用程序,并使用 express-sessionredis 进行 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/

相关文章:

node.js - 更新 npm : Cannot find module 'y18n' npm ERR?

javascript - 为第一个值添加 cookie 和未定义值

java - 如何在 GAE/java 中使用获取/设置 cookie

javascript - express.session.MemoryStore 不返回 session ?

Firebase/Firestore - 是否有需要在隐私政策中引用的特定 cookie?

node.js - Mongoose findById 查询不返回结果。对象始终为空。

javascript - 配对键/值数组

node.js - 安装 elementor 时出错

java - 无状态服务器如何在服务器端保持 session 状态?

python - 使用 Google App Engine 在 Django Python 中处理 session