“app.use(express.cookieSession())”需要“秘密”选项

时间:2013-09-04 14:51:40

标签: node.js express

website未指定使用app.use(express.cookieSession());的任何“秘密”要求,但在快递中使用相同时,则需要“秘密选项”。为什么呢?

即使我提供秘密app.use(express.cookieSession({secret: 'abc'}));,浏览器中也会显示以下错误: -

TypeError: Cannot read property 'connect.sess' of undefined

2 个答案:

答案 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
  },
}));
...