【问题标题】:Laravel run a group of middlewares with a specific guardLaravel 运行一组带有特定守卫的中间件
【发布时间】:2021-02-02 14:59:10
【问题描述】:

我有两个不同的警卫 api 警卫和 transporter 警卫,我使用 laratrust 包来管理用户角色和权限

 Route::get('/requests', 'RequestController@index')->middleware('ability:owner|administrator,read-requests|all-requests');

只有当守卫是api守卫时,我才需要运行上面的laratrust中间件

注意:- 来自 laratrust 文档 https://laratrust.santigarcor.me/docs/6.x/usage/middleware.html#concepts 我发现你可以像这样指定你的后卫,但它不起作用

  Route::get('/requests', 'RequestController@index')->middleware('ability:owner|administrator,read-requests|all-requests|guard:api');

【问题讨论】:

    标签: laravel laratrust


    【解决方案1】:

    我从未使用过 Laratrust,但如果它是一个适用于整个路由组的中间件,我认为您可以在 $middlewareGroups 数组中的 app/Http/Kernel.php 文件中定义它。

    protected $middlewareGroups = [
        'web' => [
            'ability:owner',
            'administrator',
            'read-requests',
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Laravel\Jetstream\Http\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
    
        'api' => [
            'throttle:api',
            'ability:owner',
            'administrator',
            'read-requests',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
    ];
    

    【讨论】:

      猜你喜欢
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 2019-09-30
      • 2016-04-26
      • 1970-01-01
      相关资源
      最近更新 更多