Laravel 在验证中间件之前运行模型绑定

Laravel 在验证中间件之前运行模型绑定,laravel,model-binding,laravel-middleware,Laravel,Model Binding,Laravel Middleware,我想问一下,在绑定模型之前,如何运行auth中间件?目前在我的5.7应用程序中,模型绑定在身份验证之前运行。我尝试在kernel.php中创建一个middlwaregroup,如下所示: 'api' => [ 'throttle:10,1', 'jwt.middleware', 'bindings', ], 但是模型绑定仍然在身份验证之前运行。我还试图改变路线中两个中间产品的顺序,但没有改变。答案是: 您的身份验证

我想问一下,在绑定模型之前,如何运行auth中间件?目前在我的5.7应用程序中,模型绑定在身份验证之前运行。我尝试在kernel.php中创建一个middlwaregroup,如下所示:

        'api' => [
        'throttle:10,1',
        'jwt.middleware',
        'bindings',
    ],
但是模型绑定仍然在身份验证之前运行。我还试图改变路线中两个中间产品的顺序,但没有改变。

答案是:


您的身份验证中间件使用什么?由于中间件优先级已定义为在绑定中间件之前运行默认身份验证中间件,您可以在内核中的
$middlewarePriority
数组中看到这一点。我使用JWT使用自定义身份验证控制器,那么这不是“身份验证”中间件。。。因此,您必须向
$middlewarePriority
数组中添加该中间件的类,而
jwt.middleware
将位于绑定中间件之前
protected $middlewarePriority = [
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\Authenticate::class,
    \Illuminate\Session\Middleware\AuthenticateSession::class,
    \Illuminate\Auth\Middleware\Authorize::class,
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
];