Laravel开发Shopify应用出现Target class [auth.shop] does not exist报错求助
报错原因
osiset/laravel-shopify v17及以上版本弃用了原有的auth.shop中间件默认别名配置,框架无法通过别名找到对应的中间件类,因此抛出绑定解析异常。
解决方案
你可以任选以下任意一种方法修复该问题:
- 方法1:替换路由中间件为完整类名
修改routes/web.php文件,引入中间件的完整类名替换原有别名:<?php use Illuminate\Support\Facades\Route; use Osiset\ShopifyApp\Http\Middleware\AuthShop; Route::get('/', function () { return view('welcome'); })->middleware([AuthShop::class])->name('home'); - 方法2:手动注册
auth.shop中间件别名
打开app/Http/Kernel.php文件,在$routeMiddleware数组中追加别名配置:
配置完成后无需修改原有路由代码即可正常运行。protected $routeMiddleware = [ // 此处保留项目原有其他中间件配置 'auth.shop' => \Osiset\ShopifyApp\Http\Middleware\AuthShop::class, ]; - 方法3:替换为默认注册的
verify.shopify中间件
若你的场景符合包提供的通用Shopify身份校验规则,直接将路由中的auth.shop替换为verify.shopify即可,该别名在v17版本中默认已注册,无需额外配置。
内容的提问来源于stack exchange,提问作者Davi Amaral
相关产品推荐
相关产品推荐

