我尝试使用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;
});
});
当我没有为会话密钥分配值时,会发生什么?
答案 0 :(得分:8)
express.session
使用下面的connect.session
;如果您查看its documentation,则会使用connect.sid
作为默认密钥,以防您自己提供密码:
选项:
key
Cookie名称默认为connect.sid
- ...
答案 1 :(得分:0)
@ robertklep的答案已经过时了:
会话密钥现在是强制性的。您必须提供它并且其中包含的秘密的防御取决于选择一个好的密钥。我的建议是选择一个具有足够熵(128位)的密钥并定期更改它。
请参阅:https://github.com/expressjs/session/blob/master/test/session.js#L38