Nodejs / Express / Cookies:如何设置带有密码的签名cookie

时间:2018-03-10 06:34:15

标签: node.js express session-cookies setcookie

在我的目录中,我有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

2 个答案:

答案 0 :(得分:1)

您需要指定一个在签名cookie时使用的密钥。

您可以通过在代码中添加以下行来完成此操作。

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

答案 1 :(得分:0)

根据代码段,您正在使用express-session模块,如下所示:

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

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

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