2012-08-07 12 views
8

Ich verwende die vhost-Funktion in Express mit Knoten, um mehrere Sub-Domains für meine App zu verwalten. Die App nutzt das gleiche Sitzungsgeheimnis und Schlüssel, und ich glaube, ich die Einstellungen richtig Session-Cookie verwendet habe:Sitzungen über Sub-Domänen in Express

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

ich einen Session-Variable auf meiner regulären Website einstellen, die Sub-Domain nicht definiert z.B. ist http://example.com wie so:

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

Aber wenn ich umleiten sie die Sitzung subdomain.example.com nicht die rep_id Schlüssel auf irgendetwas. Es scheint, als ob die Sitzung zwischen Subdomains zurückgesetzt wird. Wie komme ich hier zurecht?

Antwort

4

Einige Gedanken:

Versuchen Sie, die Zeit vom .example.com entfernen. Mein Gedanke hier ist, dass Sie versuchen, ein Subdomain-only-Cookie zu setzen, während Sie noch in der Stammdomäne sind. Ich habe gelesen, dass Cookies, die auf example.com gesetzt sind, auch auf allen Subdomains verfügbar sein werden.

Versuchen Sie, den Benutzer nicht sofort zu einer Subdomain umzuleiten, um zuerst zu überprüfen, ob der Cookie in Ihrer Stammdomäne funktioniert. Überprüfen Sie die Antwortheader von Ihrem Server und sehen Sie, ob Ihr Browser den Cookie bei der nächsten Anfrage aufbewahrt hat. Nur wenn Sie sicher sind, dass dies ordnungsgemäß funktioniert, navigieren Sie zur Subdomain.