使用策略授權操作

通過使用者模型

Laravel User 模型包含兩種使用 Policies 幫助授權的方法; cancan't。這兩個可以分別用於確定使用者是否具有模型授權。

要檢查使用者是否可以檢視內容,你可以執行以下操作:

if($user->can('view', $content)){
    /* user can view content */
}

        OR

if($user->cant('view', $content)){
    /* user cannot view content */
}

通過中介軟體

Route::get('/contents/{id}, function(Content $content){
    /* user can view content */
})->middleware('can:view,content');

通過控制器

Laravel 提供了一個名為 authorize 的輔助方法,它將策略名稱和相關模型作為引數,並根據你的授權邏輯授權操作或拒絕操作並丟擲一個由 Laravel Exception 處理程式轉換為 403 HTTP responseAuthorizationException

pubic function show($id)
{
    $content = Content::find($id);

    $this->authorize('view', $content);
        
    /* user can view content */
}