【问题标题】:Laravel - Middleware for route always 403Laravel - 路由的中间件总是 403
【发布时间】:2021-07-24 16:22:47
【问题描述】:

App\Http\Controllers\Admin\ExampleController.php

public function index()
{
    dd('index');
}

app\Policies\ExamplePolicy.php

public function viewAny(User $user)
{
    return true;
}

app\Providers\AuthServiceProvider.php

protected $policies = [
    'App\Models\Example' => 'App\Policies\ExamplePolicy',
];

routes/admin.php

Route::get('example', [ExampleController::class, 'index'])->middleware('can:viewAny,App\Models\Example')

但->middleware('can:viewAny,App\Models\Example') 总是返回 403,当我删除它时,dd('index') 将运行。

我错过了什么吗?

【问题讨论】:

  • 我假设您的意思是当您登录时会发生这种情况
  • 我不知道我应该先登录。无论如何,我登录但结果相同。 403
  • php artisan route:list --path examplekeep ur middleware 的输出是什么

标签: php laravel routes middleware


【解决方案1】:

虽然我已经登录,但由于admin 和其他的分离,auth()->user() 已为空。因此,只需将web 添加到中间件即可。

Route::get('example', [ExampleController::class, 'index'])->middleware(['web', 'can:viewAny,App\Models\Example'])

【讨论】:

    猜你喜欢
    • 2020-03-12
    • 2016-12-09
    • 2020-12-09
    • 2019-08-09
    • 2020-06-24
    • 2016-04-13
    • 2022-01-11
    • 2021-12-29
    • 2021-02-20
    相关资源
    最近更新 更多