使用Kyon147/laravel-shopify开发Shopify应用遇CSP跳转错误求助
问题解决方案
1. 检查包内置的CSP配置
Kyon147/laravel-shopify本身自带适配Shopify iframe环境的CSP处理逻辑,无需手动创建中间件。你需要确认config/shopify-app.php中的CSP配置是否正确:
- 确保
csp_enabled设为true - 检查
frame_ancestors数组包含'https://admin.shopify.com'以及你的测试店铺域名(例如https://your-test-shop.myshopify.com)
示例配置代码:
'csp' => [ 'enabled' => true, 'frame_ancestors' => [ 'https://admin.shopify.com', 'https://your-test-shop.myshopify.com', ], ],
2. 移除自定义中间件
你自行添加的CSP中间件会和包内置的处理逻辑冲突,导致响应头异常。请从路由或全局中间件列表中移除该自定义中间件。
3. 排查响应头覆盖问题
如果包的CSP配置未生效,检查是否有其他中间件(如Laravel自带的CSP组件、第三方扩展)覆盖了响应头。可在控制器中临时调试输出响应头:
dd(headers_list());
查看是否存在多个Content-Security-Policy头,或frame-ancestors值未正确包含所需域名。
4. 确认ngrok环境合规
确保ngrok提供的是HTTPS域名(Shopify强制要求应用使用HTTPS),且浏览器未提示SSL证书错误。无需将ngrok域名加入frame_ancestors,因为控制嵌入权限的是父页面(admin.shopify.com和店铺后台)的域名。
5. 清理Laravel缓存
执行以下命令清除配置缓存,确保修改后的配置生效:
php artisan config:clear php artisan cache:clear
内容的提问来源于stack exchange,提问作者Andris
相关产品推荐
相关产品推荐

