Express.js-Sitzungen, die für eine Untergruppe von Routen aktiviert wurden

Ich arbeite mit expressjs und möchte Benutzer für eine Anmeldung mithilfe von Sitzungen authentifizieren. Die Site / App sollte dem Benutzer einerseits das Durchsuchen und Untersuchen verschiedener Produkte und Informationen auf einer zustandslosen Webseite ermöglichen, die das Zwischenspeichern dieser Seiten ermöglicht, andererseits die Funktionalität aufweisen, dass sich der Benutzer anmelden und auf verschiedene Inhalte zugreifen kann, die in Sitzungen erfasst wurden .

Für eine Untergruppe meiner Routen möchte ich daher den Sitzungsstatus aktivieren, während für die komplementäre Untergruppe (den Rest meiner Routen) Express-Sitzungen deaktiviert sein sollten, damit diese Seiten zwischengespeichert werden können.

Wie kann ich das sauber machen?

Angenommen, die Routen, für die ich Sitzungen aktivieren möchte, sind '/ kj% C3% B8p', '/ bibliotek' und '/ register'.

Ich habe so etwas versucht

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');

  var pageName = 'somepage';
  var oneYear = 1000*60*60*24*365;
  app.use(express.bodyParser());
  app.use('/kj%C3%B8p', express.cookieParser());
  app.use('/kj%C3%B8p', express.session({key: pageName, secret: 'someCode', store: new RedisStore, cookie: {path:'/', maxAge: (5*oneYear), httpOnly: true}}));
  app.use('/bibliotek', express.cookieParser());
  app.use('/bibliotek', express.session({key: pageName, secret: 'someCode', store: new RedisStore, cookie: {path: '/', maxAge: (5*oneYear), httpOnly: true}}));
  app.use('/registrer', express.cookieParser());
  app.use('/registrer', express.session({key: pageName, secret: 'someCode', store: new RedisStore, cookie: {path:'/', maxAge: (5*oneYear), httpOnly: true}}));

  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));

});

Dies regeneriert jedoch das Sitzungsobjekt für jede der drei Routen und scheint ziemlich chaotisch zu sein. Irgendwelche Tipps?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage