Shopify Storefront API 公钥令牌放错位置
现象#
无头或 Hydrogen 店面在浏览器控制台出现 Storefront API 401/403,或服务器渲染能通、客户端水合后失败。核对 .env 时发现把 Admin 令牌或 Storefront 私有令牌误当成公钥令牌写入了 PUBLIC_ 前缀变量。
原因#
Storefront 公钥令牌设计为可暴露在浏览器;私有令牌与 Admin 令牌绝不能进前端包。构建工具会把 PUBLIC_/NEXT_PUBLIC_ 之类变量打进客户端,放错即泄露并触发错误鉴权。多环境(dev/staging/prod)共用一份示例 env 时最容易拷错。
步骤#
- 在 Shopify 后台或 Headless 渠道创建 Storefront API 公钥令牌,确认权限仅限店面所需。
- 只把公钥写入前端可见变量;私有令牌仅放服务器运行时密钥库。
- 搜索仓库禁止提交的
.env,轮换任何曾暴露的私有/Admin 令牌。 - 用浏览器网络面板确认请求头携带的是公钥。
- 对照 Storefront API 认证说明。
- 各环境使用独立令牌,避免 staging 打到生产店铺。
验收#
客户端请求返回 200 且令牌类型为 storefront public;密钥扫描无私有令牌。记录 Asia/Shanghai 轮换时间。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。