Skończyło się to problemem różnych modułów:connect-session-mongo / express-session-mongo / connect-mongo, używających connect 2.0.1 i Express używających connect 1.8.5.
Najwyraźniej kolizja zależności uniemożliwiła modułom przechowywania sesji dostęp do właściwości „req.secret”.
Aby to zadziałało, zakończyłem używanie modułu connect-mongodb, który nadal używa connect 1.8.5, podobnie jak Express.
Powodem, dla którego nie mogłem wcześniej uruchomić funkcji connect-mongodb, był błąd użytkownika. Próbowałem zbyt mocno używać kopiowania/wklejania z przykładów online zamiast głowy.
Oto kod konfiguracyjny, który ostatecznie zadziałał dla mnie z connect-mongodb:
var Session = require('connect-mongodb');
app.configure('production', function(){
var oneWeek = 657450000;
app.use(express.static(__dirname + '/../public', { maxAge: oneWeek }));
var session = express.session({
store: new Session({
url: 'mongodb://localhost:27017/test',
maxAge: 300000
}),
secret: 'superTopSecret'
});
app.use(session);
app.use(mongooseAuth.middleware());
app.use(require('./mySite').middleware());
app.use(express.methodOverride());
app.use(express.errorHandler());
});
Mam nadzieję, że pomoże to każdemu, kto napotka ten problem. Jeśli masz jakieś sugestie/ulepszenia dotyczące tego rozwiązania, chętnie je usłyszę. :)