Javascript cookie解析器中的秘密集和express.js中的会话存储是否相同?

Javascript cookie解析器中的秘密集和express.js中的会话存储是否相同?,javascript,node.js,session,cookies,express,Javascript,Node.js,Session,Cookies,Express,Node.js提供的身份验证示例使用以下代码段: app.use(express.cookieParser('shhhh, very secret')); app.use(express.session()); 但是,express.js的会话使用以下内容: app.use(cookieParser()) app.use(session({ secret: 'keyboard cat', key: 'sid', cookie: { secure: true }})) 这令人困惑。这两个秘密是

Node.js
提供的身份验证示例使用以下代码段:

app.use(express.cookieParser('shhhh, very secret'));
app.use(express.session());
但是,
express.js的
会话使用以下内容:

app.use(cookieParser())
app.use(session({ secret: 'keyboard cat', key: 'sid', cookie: { secure: true }}))

这令人困惑。这两个秘密是一样的吗?如果我将会话存储在数据库中,应该使用哪种方法?

express 3.5.x版本仍应使用连接基于的一些库

Cookie解析器中间件

connect()
  .use(connect.cookieParser('optional secret string'))
  .use(function(req, res, next){
    res.end(JSON.stringify(req.cookies));
  })
Nex有一个会话中间件,默认情况下使用内存存储,如果要扩展应用程序,请使用Redis、Mongo或任何其他数据库进行内存存储:

connect()
  .use(connect.cookieParser())
  .use(connect.session({ secret: 'keyboard cat', key: 'sid', cookie: { secure: true }}))
阅读有关connect会话中间件的更多信息,有两行代码可以回答您的问题。()

机密会话cookie使用此机密签名以防止篡改。所以基本上这些都是相同的,但是当您添加了会话支持时,请删除cookieParser中的选项,并仅使用会话中间件中的选项设置

还要注意,Express 4.x版本带来了一些中间件更改

// backwards compatibility for signed cookies
// req.secret is passed from the cookie parser middleware
var secret = options.secret || req.secret;

// ensure secret is available or bail
if (!secret) throw new Error('`secret` option required for sessions');