HOST151: キャッシュが共有されて再生されています
この意味
ホスティング側のキャッシュにより、ある人の店舗データが別の人に再表示される可能性があります。
このデバイス上のデータは失われません。ホスティング事業者に、店舗のAPI(/wp-json/と?rest_route=の両方のアドレス)をキャッシュしないよう依頼してください。WCPOSが接続できなかった場合は、その後に再接続してください。
キャッシュ層が、アクセス元を確認せずに保存済みの REST API 応答を配信しています。アプリは認証情報の異なる2つの確認リクエストを送信しましたが、どちらにも1つ目のリクエストへの応答が返されました。稼働中の店舗でこの状態が起きると、あるレジ係が別のレジ係のデータを閲覧できる可能性があります。これはホスティング層の問題です。WordPress 自体は常にユーザーごとに応答します。
この問題が起きると、アプリはリクエストごとに一意のキャッシュキーを付けて再試行します。そのキーでキャッシュを通過できると確認できた場合、WCPOSは接続し、そのキーを付けてリクエストを送り続けます。このログ項目は、キャッシュの修正がまだ必要であることを示す警告です。安全な接続を確認できない場合、キャッシュが修正されるまでWCPOSは接続しません。
お客様のデータ
このデバイス上のデータは失われません。安全な接続を確認できない場合、WCPOSはある人のデータを別の人に表示するリスクを避けて接続しません。このデバイスにすでにあるデータはそのまま保持され、接続後に送信されます。
トラブルシューティング
ホスティング事業者またはサイト管理者向け — WCPOSが回避策で接続できた場合でも、ホスティング側でキャッシュを修正する必要があります:
- ページキャッシュから店舗のREST APIパス(/wp-json/と/?rest_route=)を除外してください。LiteSpeedではRESTキャッシュを無効にするか、キャッシュしないルールを追加します。WP EngineではWooCommerceの除外対象に/wp-json/wcposと?rest_route=形式を追加します。Sucuriでは、Cache-Controlを尊重するようキャッシュレベルを設定します。
- ストアの API はすでに Cache-Control: no-store と Vary: Authorization を送信しています — キャッシュ層がそれらを無視しています。ホストにそれらのヘッダーを確認するよう伝えてください。
- キャッシュ設定を変更した後、キャッシュを消去してください。WCPOSが接続できなかった場合は、再接続してください。