website未指定使用app.use(express.cookieSession());
的任何“秘密”要求,但在快递中使用相同时,则需要“秘密选项”。为什么呢?
即使我提供秘密app.use(express.cookieSession({secret: 'abc'}));
,浏览器中也会显示以下错误: -
TypeError: Cannot read property 'connect.sess' of undefined
答案 0 :(得分:3)
使用以下代码
app.use(express.cookieParser('secret'));
app.use(express.cookieSession());
答案 1 :(得分:3)
您无法在不提供加密密钥和密码的情况下使用Cookie。您可以在cookie解析器中传递秘密,也可以在设置会话管理时更精细并传递所有必需的值。后者提供更好的控制,因此通常是最好的主意。
...
app.use(express.compress());
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.cookieSession({
key: "mysite.sid.uid.whatever",
secret: process.env["SESSION_SECRET"],
cookie: {
maxAge: 2678400000 // 31 days
},
}));
...