Shopify Storefront API

Storefront API 私有令牌用在浏览器会失败

现象#

把 Storefront 私有令牌写进前端后,部分查询偶发成功(若服务器代发),但浏览器直连被拒,或安全扫描报密钥泄露。开发者误以为“Storefront 令牌都能公开”。

原因#

私有 Storefront 令牌权限更大,必须留在服务端(Oxygen、SSR、BFF)。浏览器出现该令牌等于把可读取未发布内容等能力交给访客。CORS 与令牌策略也会拒绝错误的使用方式。

步骤#

  1. 分清公钥与私有令牌的创建入口与权限列表。
  2. 浏览器侧只保留公钥;需要私有权限的查询改走服务端。
  3. 若私有令牌已进 Git 或打包产物,立即轮换并清理历史。
  4. 在 CI 增加规则:禁止 shpat_/shpss_ 等模式进入 public/。
  5. 阅读 shopify.dev 上 Storefront 认证与 Hydrogen 环境变量约定。
  6. 用两套最小复现:浏览器直连 vs 服务器代发,对比状态码。

验收#

前端产物不含私有令牌;敏感查询仅服务端成功。安全工单关闭并归档。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。