Ich verwende passport.js, um die Authentifizierung in meiner Anwendung nodejs + express.js zu verarbeiten. Ich habe eine LocalStrategy eingerichtet, um Benutzer von Mongodb zu übernehmen
Mein Problem ist, dass Benutzer sich erneut authentifizieren müssen, wenn ich meinen Knotenserver neu starte . Dies ist ein Problem, da ich es aktiv entwickle und mich nicht bei jedem Neustart anmelden möchte ... (+ Ich verwende Node Supervisor)
Hier ist mein App-Setup:
app.configure(function(){
app.use('/static', express.static(__dirname + '/static'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({secret:'something'}));
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
});
Und Setup der Sitzungsserialisierung:
passport.serializeUser(function(user, done) {
done(null, user.email);
});
passport.deserializeUser(function(email, done) {
User.findOne({email:email}, function(err, user) {
done(err, user);
});
});
Ich habe die in einem Blog angegebene Lösung (den Link wurde entfernt, da er nicht mehr existiert) mit connect-mongodb ohne Erfolg ausprobiert
app.use(express.session({
secret:'something else',
cookie: {maxAge: 60000 * 60 * 24 * 30}, // 30 days
store: MongoDBStore({
db: mongoose.connection.db
})
}));
EDIT zusätzliches Problem: Es sollte nur eine Verbindung hergestellt werden (Nutzung eines verbindungsbeschränkten mongohq-freien Dienstes)
EDIT 2- Lösung (als Edition ist mein Ruf zu niedrig, um meine Frage jetzt zu beantworten
Hier ist die Lösung, die ich endlich gefunden habe, indem ich eine von Mungos initiierte Verbindung verwendet habe
app.use(express.session({
secret:'awesome unicorns',
maxAge: new Date(Date.now() + 3600000),
store: new MongoStore(
{db:mongoose.connection.db},
function(err){
console.log(err || 'connect-mongodb setup ok');
})
}));