使用策略授權操作
通過使用者模型
Laravel User 模型包含兩種使用 Policies
幫助授權的方法; can
和 can'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 response
的 AuthorizationException
。
pubic function show($id)
{
$content = Content::find($id);
$this->authorize('view', $content);
/* user can view content */
}