Ga naar de hoofdinhoud
Versie: 1.x

HOST151: Cache deelt hergebruikte respons

Wat dit betekent​

De cache van je host kan winkelgegevens van de ene gebruiker aan een andere gebruiker tonen.

Er gaat niets op dit apparaat verloren. Vraag je host om de API van de winkel niet meer te cachen (zowel de adressen /wp-json/ als ?rest_route=). Als WCPOS geen verbinding heeft gemaakt, maak dan daarna opnieuw verbinding.

Een cachinglaag serveert opgeslagen REST API-antwoorden zonder te controleren wie er om vraagt: de app stuurde twee verschillend geauthenticeerde tests en ontving beide keren het antwoord op de eerste test. In een actieve winkel betekent dit dat de ene kassamedewerker de gegevens van een andere kan zien. Dit is een probleem bij de hosting — WordPress antwoordt altijd per gebruiker.

Wanneer dit gebeurt, probeert de app het opnieuw met een unieke cachecode bij elk verzoek. Als daarmee wordt aangetoond dat de code de cache omzeilt, maakt WCPOS verbinding en blijft de code versturen — deze melding betekent dan dat de cache nog moet worden hersteld. Kan geen veilige verbinding worden aangetoond, dan maakt WCPOS pas verbinding nadat de cache is hersteld.

Je gegevens​

Er gaat niets op dit apparaat verloren. Als WCPOS geen veilige verbinding kon aantonen, maakt het geen verbinding om te voorkomen dat de gegevens van de ene gebruiker aan een andere worden getoond; alles wat al op dit apparaat staat, blijft behouden en wordt verzonden zodra er verbinding is.

Probleemoplossing​

Voor je host of sitebeheerder — de cache moet op de host worden hersteld, ook als WCPOS verbinding heeft gemaakt door het probleem te omzeilen:

  1. Sluit de REST API-paden van de winkel (/wp-json/ en /?rest_route=) uit van paginacaching — schakel bij LiteSpeed REST-caching uit of voeg een no-cache-regel toe; breid bij WP Engine de WooCommerce-uitsluiting uit met /wp-json/wcpos en de vorm ?rest_route=; stel bij Sucuri het cachingniveau in op Cache-Control respecteren.
  2. De API van de winkel stuurt al Cache-Control: no-store en Vary: Authorization — de cachelaag negeert deze; wijs de host op die headers.
  3. Leeg de cache nadat je de cache-instellingen hebt gewijzigd. Als WCPOS geen verbinding heeft gemaakt, maak dan opnieuw verbinding.

Details​

Code
HOST151 (CACHE_SHARED_REPLAY)
Ernst
error
Geïntroduceerd in
WCPOS 1.10.0