Storefront API 私有令牌用在浏览器会失败
现象#
把 Storefront 私有令牌写进前端后,部分查询偶发成功(若服务器代发),但浏览器直连被拒,或安全扫描报密钥泄露。开发者误以为“Storefront 令牌都能公开”。
原因#
私有 Storefront 令牌权限更大,必须留在服务端(Oxygen、SSR、BFF)。浏览器出现该令牌等于把可读取未发布内容等能力交给访客。CORS 与令牌策略也会拒绝错误的使用方式。
步骤#
- 分清公钥与私有令牌的创建入口与权限列表。
- 浏览器侧只保留公钥;需要私有权限的查询改走服务端。
- 若私有令牌已进 Git 或打包产物,立即轮换并清理历史。
- 在 CI 增加规则:禁止
shpat_/shpss_等模式进入public/。 - 阅读 shopify.dev 上 Storefront 认证与 Hydrogen 环境变量约定。
- 用两套最小复现:浏览器直连 vs 服务器代发,对比状态码。
验收#
前端产物不含私有令牌;敏感查询仅服务端成功。安全工单关闭并归档。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。