如何防止Shopify CLI重启时删除自定义Oauth重定向URL
问题根因
你遍历项目代码找不到白名单更新逻辑很正常——这个自动覆盖重定向URL的逻辑封装在Shopify CLI内部,不属于你项目的业务代码。
每次执行shopify app dev启动开发服务时,CLI会自动获取当前ngrok分配的临时域名,调用Shopify合作伙伴平台的API全量覆盖应用的OAuth回调白名单,默认只会写入CLI预置的3个固定回调路径,你手动在后台添加的自定义路径会被直接冲掉。
解决方法
永久生效方案(推荐)
在项目根目录的shopify.app.toml配置文件中声明你的自定义回调路径,CLI启动时会自动读取该配置,将自定义路径和默认路径一起同步到白名单中,重启、ngrok域名变更时都会自动拼接新域名,不会丢失配置。
- 打开项目根目录下的
shopify.app.toml文件 - 在
[application]配置段下添加auth_redirect_urls字段,填入你需要保留的自定义回调路径(注意只填路径部分,不要带域名前缀,CLI会自动拼接当前生效的ngrok域名),示例配置:
[application] # 保留原有配置项,新增以下内容 auth_redirect_urls = [ "/api/auth/callback/offline" ]
- 保存配置后重启开发服务,自定义的回调URL会和3个默认URL一起同步到合作伙伴后台,后续重启、ngrok地址更新时都不会被删除。
临时方案(不推荐长期使用)
如果只是单次调试不想让CLI修改白名单配置,可以在启动开发服务时追加--no-config-update参数,命令示例:
shopify app dev --no-config-update
加该参数启动后,CLI会跳过自动更新合作伙伴后台应用配置的步骤,你手动添加的白名单URL会被保留,但缺点是ngrok域名变更时,所有白名单URL都需要你手动更新,否则OAuth流程会因为域名不匹配报错。
注意:不要尝试在合作伙伴后台手动添加自定义回调URL,只要CLI启动时走了默认的配置更新流程,手动添加的内容一定会被覆盖,所有需要持久化的回调路径都要在
shopify.app.toml中声明。

内容的提问来源于stack exchange,提问作者InquisitiveTom
相关产品推荐
相关产品推荐

