2017-03-20 14 views
0

Ich habe eine Rails-Anwendung auf Heroku gehostet und ich bereite die Bereitstellung einer anderen Anwendung vor, die den gleichen Sitzungscookie verwendet. Nehmen wir an, dass die Hauptanwendung unter app.mycompany.com gehostet wird und die neue Anwendung unter reports.mycompany.com gehostet wird. Ich habe Session-Cookies in beiden Apps mit der Cookie-Domain .mycompany.com eingerichtet und alles funktioniert gut. Ich habe /etc/hosts geändert, um diese Einstellungen auf meinem lokalen Rechner zu testen.Seltsames Verhalten mit Sitzungscookies

Da alles auf meinem lokalen Rechner funktionierte, wollte ich es auf unserer Staging-Umgebung testen, die unter mycompany-staging.herokuapp.com gehostet wird. Für diese App habe ich die Cookie-Domäne auf .herokuapp.com festgelegt. Und jetzt funktioniert es nicht. Es ist nicht möglich, sich anzumelden. Von Inspektor sieht es wie richtig aus Set-Cookie Header wird vom Server gesendet, aber der Browser sendet dieses Cookie nie auf Anfrage zurück.

Dasselbe passiert auf meinem lokalen Rechner, wenn mycompany-staging.herokuapp.com auf 127.0.0.1 gezeigt wird. Dies passiert nur, wenn ich herokuapp.com verwende. Alles andere funktioniert gut oder mindestens ein paar verschiedene Domänen funktionieren gut, einschließlich herokuapp2.com.

Ich bin wirklich verwirrt. Es sieht so aus, als gäbe es ein Cache-Problem, aber ich weiß nicht genau wo. Ich teste dies hauptsächlich mit dem Inkognito-Modus in Chrome, aber ich habe auch Safari mit dem gleichen Problem versucht.

Kann mir jemand in die richtige Richtung zeigen? Oder vielleicht fehlt mir etwas Offensichtliches.

Antwort

1

Dies ist, weil herokuapp.com in der Mozilla Foundation Public Suffix List enthalten ist. Cookie mit Domäne *.herokuapp.com kann nicht mehr eingestellt werden. Siehe doc in devcenter.heroku.com:

herokuapp.com ist in der öffentlichen Suffixliste der Mozilla Foundation enthalten. Diese Liste wird in neueren Versionen verschiedener Browser wie Firefox, Chrome und Opera verwendet, um zu begrenzen, wie breit ein Cookie im Bereich sein darf. Mit anderen Worten, in Browsern, die die Funktionalität unterstützen, können Anwendungen in der herokuapp.com-Domäne keine Cookies für * .herokuapp.com setzen. Beachten Sie, dass Cookies von * .herokuapp.com derzeit in Internet Explorer festgelegt werden können. Dieses Verhalten sollte jedoch nicht verlässlich sein und sich in Zukunft ändern.