基于Osiset的Shopify Laravel应用卸载重装提示无页面报错
问题结论
Shopify官方没有应用仅允许单次安装的规则,不需要新建测试店铺即可解决该问题。该报错是使用对应Laravel扩展包做本地开发时的典型场景问题,可按以下步骤逐一排查修复:
- 先确认NGROK分配地址是否有效:NGROK免费版本每次重启服务都会生成全新的临时域名,若两次安装操作间隔中重启过NGROK,之前配置到Shopify后台、项目环境变量的地址就会失效,访问自然提示无对应页面。修复方式是重启NGROK后,将新生成的HTTPS地址同步更新到两处:一是Shopify合作伙伴后台对应应用的配置项,包括应用主地址、允许重定向白名单地址;二是项目本地
.env文件中的APP_URL参数,更新完成后执行php artisan config:clear清除Laravel的配置缓存即可。 - 若确认NGROK地址未发生变更,问题源于本地数据残留:应用首次安装成功时,所用的laravel-shopify扩展包会在本地数据库中写入对应测试店铺的关联记录,标记店铺安装状态。如果没有配置应用卸载的Webhook回调,本地存储的旧店铺记录不会在卸载应用时自动清除,二次安装时扩展包校验到已存在对应店铺记录,会触发异常跳转逻辑导致页面报错。修复方式是直接打开本地项目的数据库,找到存储Shopify店铺信息的对应数据表,删除测试店铺对应的旧记录后,重新触发安装流程即可。
- 最后校验中间件配置:确认应用的认证回调路由没有被CSRF校验拦截,该扩展包要求安装认证相关的回调路由必须排除在Web中间件组的CSRF验证规则之外,否则二次安装的回调请求会被拦截,返回页面不存在的报错。
开发提示:后续本地反复测试安装卸载流程时,可以给扩展包补充卸载事件的监听逻辑,收到Shopify推送的应用卸载通知时自动清除本地对应的店铺记录,无需每次手动修改数据库。
内容的提问来源于stack exchange,提问作者DevD
相关产品推荐
相关产品推荐

