Cela a fini par être un problème des différents modules :connect-session-mongo / express-session-mongo / connect-mongo, en utilisant connect 2.0.1 et Express en utilisant connect 1.8.5.
Apparemment, le conflit de dépendances ici a empêché les modules du magasin de sessions d'accéder à la propriété 'req.secret'.
Pour que cela fonctionne, j'ai fini par utiliser le module connect-mongodb qui utilise toujours connect 1.8.5, tout comme Express.
La raison pour laquelle je ne pouvais pas faire fonctionner connect-mongodb auparavant était une erreur de l'utilisateur, j'ai trop essayé d'utiliser le copier/coller à partir d'exemples en ligne au lieu de ma tête.
Voici le code de configuration qui a fini par fonctionner pour moi avec 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());
});
J'espère que cela aidera tous ceux qui rencontrent ce problème. Si vous avez des suggestions/améliorations sur cette solution, je serais heureux de les entendre. :)