【问题标题】:using csurf with session in express在 express 中使用 csurf 和 session
【发布时间】:2016-08-20 16:52:45
【问题描述】:

我正在使用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 错误。

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

【问题讨论】:

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


    【解决方案1】:

    如果你想在客户端创建一个 csrf cookie,你必须使用以下内容:

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

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

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

    【讨论】:

    猜你喜欢
    • 2014-09-19
    • 2018-03-07
    • 2022-08-22
    • 2019-05-14
    • 2015-11-10
    • 1970-01-01
    • 2014-07-18
    • 2017-04-10
    • 2018-05-18
    相关资源
    最近更新 更多