2011-10-19 20 views
5

Używam Connect.js i modułu sesji połączenia do zarządzania plikami cookie sesji. Zauważyłem, że Connect ustawia plik cookie sesji na wszystkich trasach z wyjątkiem plików statycznych. Problem polega na tym, że przetwarzam niektóre pliki statyczne, takie jak pliki JS i CSS, zanim je wyślę, więc nie mogę korzystać z wbudowanego statycznego serwera Connect, co oznacza, że ​​sesja połączenia ustawia plik cookie sesji dla tych plików. Ponieważ pliki te będą uwzględniane w witrynach zewnętrznych, nie chcę, aby wysyłały one do nich pliki cookie.Pliki cookie sesji tylko dla określonych tras

Czy można ustawić pliki cookie sesji tylko dla określonych tras?

+0

'app.use ('/ session-only', express.session());' powinien działać. – OneOfOne

+3

[Ten numer] (https://github.com/senchalabs/connect/issues/307) może Cię zainteresować. – jweyrich

Odpowiedz

2

Dobra znalazłem moją odpowiedź tutaj: http://senchalabs.github.com/connect/middleware-session.html

Można zignorować tras za pomocą connect.session.ignore tak: connect.session.ignore.push('/robots.txt');

+3

Już nie: https://github.com/senchalabs/connect/commit/73bf05479cee5b7e8e4e7ba27b45be16a303c912#lib/middleware/session.js –

+0

Hmm, dzięki za wskazanie tego. Jakaś alternatywa? –

+0

Załóżmy, że można uzyskać oprogramowanie pośrednie sesji w zmiennej, 'var session = express.session ({key: 'bla"}) ;, a następnie wystarczy napisać oprogramowanie pośrednie, które wywołuje 'session.apply (express, arguments)' na ścieżkach chcesz oprogramowania pośredniego sesji –

2

jeśli używasz Express, które można umieścić app.use(express.static(path.join(__dirname, 'public'))); przed app.use(express.session());.

Powiązane problemy