阅读(4702) (7)

Laravel 8 通过中间件

2021-06-29 16:33:53 更新

Laravel 包含一个中间件,可以在传入的请求到达路由或控制器之前对操作进行授权。默认情况下,Illuminate\Auth\Middleware\Authorize 中间件被分配给 App\Http\Kernel 类中的 can 键。让我们来探索一个使用 can 中间件授权用户更新博客文章的例子:

use App\Models\Post;

Route::put('/post/{post}', function (Post $post) {
    // 当前用户可以更新帖子...
})->middleware('can:update,post');

在本例中,我们传递了 can 中间件两个参数。第一个是希望授权的操作的名称,第二个是希望传递给策略方法的路由参数。在本例中,由于我们使用 隐式模型绑定,一个 Post 模型将被传递给策略方法。如果用户没有被授权执行给定的操作,则中间件将生成一个带有 403 状态代码的 HTTP 响应。