HOST151: Risposte della cache condivise tra utenti
Cosa significa
La cache del provider di hosting può restituire a una persona i dati del negozio destinati a un'altra.
Nessun dato su questo dispositivo va perso. Chiedi al provider di hosting di non memorizzare più nella cache l'API del negozio (sia gli indirizzi /wp-json/ sia quelli ?rest_route=). Se WCPOS non si è connesso, riconnettiti dopo la modifica.
Un livello di cache restituisce risposte dell'API REST memorizzate senza verificare chi le richiede: l'app ha inviato due richieste di prova con autenticazioni diverse e ha ricevuto entrambe le volte la risposta alla prima. In un negozio operativo, questo significa che un cassiere potrebbe vedere i dati di un altro. Il problema riguarda il livello di hosting: WordPress risponde sempre in base all'utente.
Quando accade, l'app riprova usando una chiave di cache univoca per ogni richiesta. Se la prova conferma che la chiave permette di superare la cache, WCPOS si connette e continua a inviarla: questa voce diventa quindi un avviso che la cache deve ancora essere corretta. Se non può verificare che la connessione sia sicura, WCPOS non si connette finché la cache non viene corretta.
I tuoi dati
Nessun dato su questo dispositivo va perso. Se WCPOS non ha potuto verificare che la connessione sia sicura, non si connette per evitare di mostrare a una persona i dati di un'altra; tutto ciò che è già sul dispositivo rimane lì e viene inviato quando la connessione viene stabilita.
Risoluzione dei problemi
Per il provider di hosting o l'amministratore del sito — la cache deve essere corretta sul server, anche se WCPOS è riuscito a connettersi aggirandola:
- Escludi i percorsi dell'API REST del negozio (/wp-json/ e /?rest_route=) dalla cache delle pagine: su LiteSpeed disabilita la cache REST o aggiungi una regola no-cache; su WP Engine estendi l'esclusione di WooCommerce a /wp-json/wcpos e alla forma ?rest_route=; su Sucuri imposta il livello di cache in modo che rispetti Cache-Control.
- L'API del negozio invia già Cache-Control: no-store e Vary: Authorization, ma il livello di cache li ignora; segnala queste intestazioni al provider di hosting.
- Dopo aver modificato le impostazioni della cache, svuotala. Se WCPOS non si è connesso, riconnettiti.