2012-08-07 10 views
8

Używam funkcji vhost w Express with Node do zarządzania wieloma subdomenami dla mojej aplikacji. Aplikacja korzysta z tej samej sesji i klucz tajny, i wierzę Użyłem poprawne ustawienia ciasteczka sesyjnego:Sesje w subdomenach w Express

cookie: { 
      path  : '/', 
      domain : '.example.com', 
      httpOnly : false, 
      maxAge : 1000*60*60*24*30*12 //one year(ish) 
     } 

ustawić zmienną sesji na moim miejscu, gdzie regularnie subdomena jest niezdefiniowany np http://example.com tak:

req.session.rep_id = rep._id; 
res.redirect('https://' + company.name + '.example.com/'); 

Ale kiedy przekierować je do subdomain.example.com sesji nie mają rep_id zestawu kluczy do niczego. Wygląda na to, że sesja jest resetowana między subdomenami. Jak sobie z tym poradzić?

Odpowiedz

4

Niektóre myśli:

spróbuj usunąć okres od .example.com. W tym miejscu myślę, że próbujesz ustawić plik cookie zawierający tylko subdomenę, pozostając w domenie głównej. Czytałem, że pliki cookie ustawione na example.com będą dostępne również we wszystkich subdomenach.

Spróbuj natychmiast przekierować użytkownika do poddomeny, aby najpierw sprawdzić, czy plik cookie działa w domenie głównej. Sprawdź nagłówki odpowiedzi na swoim serwerze, a następnie sprawdź, czy przeglądarka zachowała plik cookie w następnym żądaniu. Tylko wtedy, gdy jesteś pewien, że to działa poprawnie, przejdź do subdomeny.