用途:为 Shopify 应用提供安全基础实践,覆盖 API 凭据管理、Webhook HMAC 校验、OAuth 请求验证、最小权限 scope 与嵌入式应用 CSP。
主要能力:凭据存于环境变量且 .env 加入 .gitignore;用 API secret 对 Webhook 做 HMAC-SHA256 校验,签名在 X-Shopify-Hmac-Sha256 头,比较需用 crypto.timingSafeEqual,且中间件必须用原始 body 解析;对 OAuth 请求校验 HMAC 查询参数(参数按字母排序后生成字符串再比较摘要);access scopes 按用途最小化,如 read_products、read_orders、write_fulfillments 等;嵌入式应用设置 frame-ancestors CSP 头。
使用方式:token 前缀参考——Admin API access token 以 shpat_ 开头 38 字符;Storefront API token 长度不定;API secret key 为 32+ 十六进制字符。shopify.app.toml 中 [access_scopes] 先给最小范围,再用 [access_scopes.optional] 配置可选范围。可用 git-secrets 防泄漏:brew install git-secrets(macOS)或 sudo apt install git-secrets(Linux),再 git secrets --add 'shpat_[a-f0-9]{32}'、git secrets --add 'shpss_[a-f0-9]{32}'、git secrets --install。
限制与排错:文档未提供完整实现代码细节,需参考其 Webhook HMAC Verification 与 OAuth Request Verification 资源。常见问题:git 历史含 shpat_ 需立即轮换;Webhook HMAC 无效出现 401 需核对 API secret;缺少 scope 导致 403 需补充并重新授权;admin token 不得出现在浏览器端。完整审计清单与示例代码以原始页面为准。