État connecté incohérent derrière Fastly

Je rencontre un problème étrange, mais il y a de nombreux facteurs en jeu.

Problème :

Lorsque je suis connecté et que je navigue directement vers la page d’accueil de mon forum, il semble que je ne sois pas connecté dans l’interface utilisateur, par exemple la barre de navigation affiche des liens d’inscription/de connexion au lieu de l’avatar de l’utilisateur.

Naviguer directement vers un message spécifique entraîne l’état de connexion correct, et les transitions pushstate subséquentes fonctionnent, y compris le retour à la page d’accueil. Cependant, un rechargement sur la page d’accueil entraîne l’apparence d’une déconnexion (comme ci-dessus).

Contexte :

J’utilise Discourse entièrement derrière Fastly, à l’exception de la fonctionnalité de sondage qui communique directement avec mon instance de calcul GCP.

Je suppose que cela a quelque chose à voir avec la couche de cache, mais j’ai été très prudent en lisant les discussions sur ce forum. Je n’ai pas activé la compression GZIP automatique de Fastly.

Le forum est ici et voici une vidéo de ce qui précède.

Après investigation plus approfondie, je pense que le problème peut être lié au moment où l’en-tête de réponse Cache-Control est no-cache, no-store en combinaison avec le fait que Fastly ne respecte pas ces valeurs.

Mon CDN Fastly marquait ce qui semblait être une version noscript de la page d’accueil pour un robot d’exploration comme des HIT, car il a dû être exploré avec la valeur no-cache, no-store.

Fastly suggère d’ajouter un Expires: 0 dans des situations comme celle-ci.

J’ai mis cela en œuvre comme suggéré par la documentation de Fastly en attendant.