【问题标题】:Nodejs/Express/Cookies: how do you set signed cookies with a secretNodejs/Express/Cookies:如何设置带有秘密的签名 cookie
【发布时间】:2018-08-18 18:06:45
【问题描述】:

在我的目录中,我有 app.js 和 Index.htmml ;我正在尝试从 App.js 设置 cookie;我试过了:-

var express = require('express'),
  app = express(),
  http = require('http'),
  cookieparser = require ('cookie-parser'),
  httpServer = http.Server(app);

app.use(express.static(__dirname + '/data'));

app.get('/', function(req, res) {

 let options = {
        maxAge: 60000, // would expire after 1 minutes
        httpOnly: true, 
        signed: true ,
        secret: 'secret'
    }

    // Set cookie

  app.use(require('express-session')({ secret: 'keyboard cat', resave: true, saveUninitialized: true }));

  res.cookie('cookieName', 'Success', options)

 res.sendFile(__dirname + '/index.html');

});

app.listen(8080);

当我从 Cmd 运行 app.js 时,我对这个错误感到失望 在此先感谢您的帮助

Error: cookieParser("secret") required for signed cookies

【问题讨论】:

    标签: node.js express session-cookies setcookie


    【解决方案1】:

    根据 sn-p,您正在使用 express-session 模块,如下所示:

    app.use(require('express-session')({ secret: 'keyboard cat', ... }));
    

    这已经表明您希望对 cookie 进行签名。因此,在您的 cookie options 中,您可以删除选项 signed: true,因为它是多余的。

    最后一点,您需要改进该代码。

    【讨论】:

      【解决方案2】:

      您需要指定在签署 cookie 时将使用的密钥。

      您可以通过在代码中添加以下行来做到这一点。

      app.use(cookieparser("secret"));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-22
        • 2015-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多