错误:签名的cookie需要cookieParser(“ secret”)

Bab*_*med 2 cookies node.js express

我正在研究express / node.js并试图了解expressjs的cookie,并且正在像这样设置cookie:

var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
app.use(cookieParser());

app.get('/', function(req, res){
    res.cookie('cookie1', 'This is my first cooke', {maxAge: 1000*60*60*24*7, httpOnly: true});
    res.end('Cookie has been set');
});
Run Code Online (Sandbox Code Playgroud)

并按如下方式访问Cookie:

app.get('/readCookies',function(req, res){
    res.send(req.cookies.cookie1);
});
Run Code Online (Sandbox Code Playgroud)

但是问题是signed: true在设置cookie的过程中包括用于编码cookie值的选项时出现了以下错误:

Error: cookieParser("secret") required for signed cookies
Run Code Online (Sandbox Code Playgroud)

请帮助我,在此先感谢

rob*_*lep 10

该错误说明了要发送已签名的Cookie所需执行的操作:

错误:签名的cookie需要cookieParser(“ secret”)

Express文档状态:

使用cookie-parser中间件时,此方法还支持签名的cookie。只需将signed选项设置为即可true。然后res.cookie()将使用传递的秘密cookieParser(secret)对值进行签名。

cookie-parser文档指出:

cookieParser(secret,options)

  • secret用于签署Cookie的字符串或数组。这是可选的,如果未指定,将不会解析签名的cookie。如果提供了字符串,则将其用作密码。

所以一切都结合起来了:

  • 在我读到这个问题之前,我从来没有真正理解 cookie 和带有签名的 cookie 发生了什么。[我的笔记...](https://dogfeatherdesign.com/using-cookies-with-nodejs-express-way-easy/) (2认同)