【问题标题】:express session key property表达会话密钥属性
【发布时间】:2014-10-30 08:34:19
【问题描述】:

我尝试在 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;
  });
});

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

【问题讨论】:

    标签: session express


    【解决方案1】:

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

    选项:

    • key cookie 名称默认为 connect.sid
    • ...

    【讨论】:

    • 链接不起作用,你能解释一下如何将cookie连接到express-session
    【解决方案2】:

    @robertklep 的回答已过时:

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

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

    【讨论】:

    • 也许您将密钥与秘密混淆了?
    • @jpierson 在撰写本文时我相信它被称为“key”(一年多以前)你可以看到代码行也不匹配了。
    猜你喜欢
    • 2017-02-14
    • 2018-03-17
    • 1970-01-01
    • 2014-05-31
    • 2021-09-02
    • 1970-01-01
    • 2010-11-06
    • 2016-11-15
    • 1970-01-01
    相关资源
    最近更新 更多