W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
表單請(qǐng)求類內(nèi)也包含了 authorize
方法。在這個(gè)方法中,你可以檢查經(jīng)過身份驗(yàn)證的用戶確定其是否具有更新給定資源的權(quán)限。比方說,你可以判斷用戶是否擁有更新文章評(píng)論的權(quán)限:
/**
* 判斷用戶是否有請(qǐng)求權(quán)限
*
* @return bool
*/
public function authorize()
{
$comment = Comment::find($this->route('comment'));
return $comment && $this->user()->can('update', $comment);
}
由于所有的表單請(qǐng)求都是繼承了 Laravel 中的請(qǐng)求基類,所以我們可以使用 user
方法去獲取當(dāng)前認(rèn)證登錄的用戶。同時(shí)請(qǐng)注意上述例子中對(duì) route
方法的調(diào)用。這個(gè)方法允許你在被調(diào)用的路由上獲取其定義的 URI 參數(shù),譬如下面例子中的 {comment}
參數(shù):
Route::post('comment/{comment}');
如果 authorize
方法返回 false
,則會(huì)自動(dòng)返回一個(gè)包含 403 狀態(tài)碼的 HTTP 響應(yīng),也不會(huì)運(yùn)行控制器的方法。
如果你打算在應(yīng)用程序的其它部分處理授權(quán)邏輯,只需從 authorize
方法返回 true
:
/**
* 判斷用戶是否有請(qǐng)求權(quán)限
*
* @return bool
*/
public function authorize()
{
return true;
}
Tip:你可以向
authorize
方法傳入所需的任何依賴項(xiàng)。他們會(huì)自動(dòng)被 Laravel 提供的 服務(wù)容器 自動(dòng)解析。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: