我正在尝试在ExpressJS应用程序中使用CookieSession中间件。在CookieSession中间件之前是否需要使用CookieParser中间件?CookieParser也接受密钥,CookieSession中间件也接受密钥。我需要在这两方面都保密吗?

var express = require('express');
var app = express();
app.use(express.cookieParser('secret'));
app.use(express.cookieSession({
  key: 'key',
  secret: 'Should it be same as above?'
});

我知道CookieSession中间件将cookie变量分配给req.session对象。所以我想CookieParser是必需的,但是我应该在哪里设置秘密,我应该在两者中设置相同的秘密吗?

最佳答案

这是陷阱。传递给cookieParser的机密字符串不是由它使用的,而是由其他中间件使用的,对于它是可选的。它将req.secret设置为该值。cookieSession只需检查req.secret是否存在并将使用它,但默认情况下,它将使用显式传递给存储的机密的secret选项。因此,只把选择权交给其中一个就足够了。
你可以在他们的文档中看到:cookieParsercookieSession

07-28 11:45