使用Kyon147/laravel-shopify包时verify.shopify中间件路由失效问题
解决Kyon147/laravel-shopify中verify.shopify中间件路由失效问题
可能的原因及修复方案
1. 域名校验拦截本地/非嵌入访问
verify.shopify中间件默认会校验请求是否来自合法的Shopify店铺域名,若直接通过本地地址(如localhost:8000)或非Shopify嵌入环境访问中间件内的路由,会被拦截。
- 修复方式:
- 开发测试时,可临时修改中间件逻辑跳过本地校验(仅用于开发环境):
找到vendor/kyon147/laravel-shopify/src/Middleware/VerifyShopify.php文件,修改handle方法:public function handle(Request $request, Closure $next) { if (app()->environment('local')) { return $next($request); } // 保留原有的校验逻辑 return parent::handle($request, $next); } - 正式环境必须通过Shopify后台嵌入iframe访问这些路由。
- 开发测试时,可临时修改中间件逻辑跳过本地校验(仅用于开发环境):
2. OAuth会话未初始化或失效
中间件依赖Shopify OAuth授权后的会话信息,若会话未建立或已过期,会导致路由无法访问。
- 修复方式:
- 确认应用已完成Shopify OAuth授权流程,用户已授权应用访问店铺。
- 检查
.env配置项是否正确:SHOPIFY_API_KEY=你的API密钥 SHOPIFY_API_SECRET=你的API密钥 SHOPIFY_APP_URL=https://你的应用域名.com - 清除缓存和会话:
php artisan cache:clear php artisan session:clear
3. 路由顺序或重复定义冲突
若其他路由文件中存在与/、/plan重复的路由定义,且定义在中间件组之后,会覆盖中间件内的路由。
- 修复方式:检查所有路由文件,确保没有重复路由,并将带
verify.shopify中间件的路由组放在所有路由定义的最前面。
4. 中间件未正确注册
若verify.shopify中间件未在Laravel内核中注册,会导致路由组的中间件失效。
- 修复方式:打开
app/Http/Kernel.php,确认$routeMiddleware数组中存在以下配置:
若缺失,手动添加该条目。'verify.shopify' => \Kyon147\LaravelShopify\Middleware\VerifyShopify::class,
内容的提问来源于stack exchange,提问作者Mohit Nandpal
相关产品推荐
相关产品推荐

