2

我尝试在 express 中构建一个带有身份验证系统的应用程序。为了让用户保持会话状态,我使用快速会话中间件。当我配置会话时,我不知道是否必须分配会话密钥属性。这个样本来自某本书。

app.configure(function(){
  app.sessionSecret = 'SocialNet secret key';
  app.set('view engine', 'jade');
  app.use(express.static(__dirname + '/public'));
  app.use(express.limit('1mb'));
  app.use(express.bodyParser());
  app.use(express.cookieParser());
  app.use(express.session({
    secret: app.sessionSecret,
    key: 'express.sid',
    store: app.sessionStore
  }));
  mongoose.connect(dbPath, function onMongooseError(err) {
    if (err) throw err;
  });
});

当我没有为会话键赋值时会发生什么?

4

2 回答 2

8

express.session在下面使用connect.session;如果您查看它的文档,它将connect.sid用作默认密钥,以防您自己不提供:

选项:

  • key cookie 名称默认为connect.sid
  • ...
于 2013-05-19T19:51:36.230 回答
0

@robertklep 的回答已过时:

会话密钥现在是强制性的。您必须提供它,其中包含的秘密的防御取决于选择一个好的密钥。我的建议是选择具有足够熵(128 位)的密钥并定期更改它。

见:https ://github.com/expressjs/session/blob/master/test/session.js#L38

于 2014-10-30T00:34:19.903 回答