Inkonsistenter angemeldeter Zustand hinter Fastly

Ich habe ein etwas seltsames Problem, bei dem viele Faktoren eine Rolle spielen.

Problem:

Wenn ich angemeldet bin und direkt zur Startseite meines Forums navigiere, scheint es, als wäre ich nicht angemeldet. In der Benutzeroberfläche, z. B. in der Navigationsleiste, werden Links für „Registrieren/Anmelden" angezeigt, anstatt des Benutzer-Avatars.

Beim direkten Navigieren zu einem bestimmten Beitrag wird der korrekte angemeldete Zustand angezeigt, und nachfolgende PushState-Übergänge funktionieren, einschließlich des Wechsels zur Startseite. Ein Neuladen der Startseite führt jedoch dazu, dass sie wieder als abgemeldet angezeigt wird (wie oben beschrieben).

Hintergrund:

Ich verwende Discourse vollständig hinter Fastly, mit Ausnahme der Polling-Funktionalität, die direkt mit meiner GCP Compute-Instanz kommuniziert.

Ich vermute, dass dies mit der Caching-Schicht zusammenhängt, aber ich habe mich sehr genau durch die Diskussionen in diesem Forum gearbeitet. Die automatische GZIP-Komprimierung von Fastly ist bei mir nicht aktiviert.

Das Forum ist hier und hier ist ein Video davon.

Bei weiterer Untersuchung glaube ich, dass das Problem damit zusammenhängt, dass der Antwort-Header Cache-Control auf no-cache, no-store gesetzt ist, in Kombination damit, dass Fastly diese Werte nicht beachtet.

Mein Fastly-CDN hat eine Version der Startseite, die wie eine noscript-Variante für einen Webcrawler aussieht, als HIT markiert, da der Crawler vermutlich mit dem Wert no-cache, no-store abgerufen hat.

Fastly empfiehlt, in solchen Fällen ein Expires: 0 hinzuzufügen.

Ich habe dies vorläufig wie in der Fastly-Dokumentation beschrieben umgesetzt.