Shopify Storefront API

Shopify Storefront API 公钥令牌放错位置

现象#

无头或 Hydrogen 店面在浏览器控制台出现 Storefront API 401/403,或服务器渲染能通、客户端水合后失败。核对 .env 时发现把 Admin 令牌或 Storefront 私有令牌误当成公钥令牌写入了 PUBLIC_ 前缀变量。

原因#

Storefront 公钥令牌设计为可暴露在浏览器;私有令牌与 Admin 令牌绝不能进前端包。构建工具会把 PUBLIC_/NEXT_PUBLIC_ 之类变量打进客户端,放错即泄露并触发错误鉴权。多环境(dev/staging/prod)共用一份示例 env 时最容易拷错。

步骤#

  1. 在 Shopify 后台或 Headless 渠道创建 Storefront API 公钥令牌,确认权限仅限店面所需。
  2. 只把公钥写入前端可见变量;私有令牌仅放服务器运行时密钥库。
  3. 搜索仓库禁止提交的 .env,轮换任何曾暴露的私有/Admin 令牌。
  4. 用浏览器网络面板确认请求头携带的是公钥。
  5. 对照 Storefront API 认证说明。
  6. 各环境使用独立令牌,避免 staging 打到生产店铺。

验收#

客户端请求返回 200 且令牌类型为 storefront public;密钥扫描无私有令牌。记录 Asia/Shanghai 轮换时间。

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