Stato di accesso incoerente dietro Fastly

Sto riscontrando un problema piuttosto strano, ma ci sono molti fattori in gioco.

Problema:

Quando sono loggato e navigo direttamente alla home page del mio forum, sembra che non sia loggato nell’interfaccia utente; ad esempio, la barra di navigazione mostra i link per l’iscrizione/accesso invece dell’avatar dell’utente.

Navigando direttamente a un post specifico, lo stato di accesso corretto viene rilevato e le successive transizioni pushstate funzionano, incluso il ritorno alla home page. Tuttavia, un ricaricamento della home page fa sì che appaia come se fossi disconnesso (come sopra).

Contesto:

Sto utilizzando Discourse completamente dietro Fastly, ad eccezione della funzionalità di polling che comunica direttamente con la mia istanza GCP Compute.

Penso che questo abbia a che fare con il livello di caching, ma ho fatto molta attenzione a leggere le discussioni su questo forum. Non ho attivata la compressione GZIP automatica di Fastly.

Il forum è qui e ecco un video di quanto descritto.

Dopo ulteriori indagini, penso che il problema possa essere legato al momento in cui l’intestazione di risposta Cache-Control è no-cache, no-store in combinazione con Fastly che non rispetta tali valori.

Il mio CDN Fastly stava contrassegnando come HIT ciò che sembrava una versione noscript della home page per un web crawler, poiché probabilmente l’ha indicizzata con il valore no-cache, no-store.

Fastly suggerisce di aggiungere un Expires: 0 in situazioni come questa.

Ho implementato questa soluzione come suggerito dalla documentazione di Fastly nel frattempo.