2013-05-19 55 views
1

我嘗試在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; 
    }); 
}); 

什麼時候會發生,當我不分配一個值的會話密鑰?

回答

6

express.session使用下面的connect.session;如果你看一下its documentation,它將使用connect.sid作爲默認密鑰的情況下,你沒有提供一個自己:

選項:

  • keycookie的名稱默認爲connect.sid
  • 。 ..
0

@robertklep' s答案已過時:

會話密鑰現在是強制性的。你必須提供它並且保護其中包含的祕密依賴於選擇一個好的密鑰。我的建議是選擇一個具有足夠熵(128位)的密鑰並定期更改它。

請參閱:https://github.com/expressjs/session/blob/master/test/session.js#L38

+2

也許你是混淆鑰匙與祕密? – jpierson

+1

@jpierson在寫這篇文章時我相信它被稱爲「關鍵」(一年前),你可以看到代碼行不再匹配。 –