Laravel 授權
laravel 授權
在前一章中,我們已經研究了laravel中的認證過程。本章向您介紹laravel的授權流程。
身份驗證和授權之間的區別
在繼續深入了解laravel的授權過程之前,讓我們了解身份驗證和授權之間的區別。
在 身份驗證中 ,web應用程序或系統通過定義的憑證來驗證用戶。如果憑證按照記錄進行匹配,則它們通過身份驗證,否則它們不會。
當我們描述 授權 這個術語時,它只是描述驗證,如果經過驗證的用戶可以訪問為其定義的資源。換句話說,它驗證了他們對請求和定義的資源的權利和許可。如果經過認證的用戶可以按照定義訪問資源,則表示他們已被授權。
因此, 認證 涉及檢查用戶證書的有效性,并且 授權 涉及檢查經認證用戶具有的資源上的權限和許可。
laravel的授權機制
laravel提供了一種簡單的授權機制,其中包含兩種主要方式,即 門 和 策略 。
寫蓋茨和政策
門用于確定用戶是否有權執行指定的操作。它們通常使用gate facade 在 app / providers / authserviceprovider.php中 定義。門也是為執行授權機制而聲明的函數。
策略在數組中聲明,并在使用授權機制的類和方法中使用。
以下代碼行解釋了如何使用門和策略在laravel web應用程序中授權用戶。請注意,在本例中, 引導 功能用于授權用戶。
namespace app\providers; use illuminate\contracts\auth\access\gate as gatecontract; use illuminate\foundation\support\providers\authserviceprovider as serviceprovider; class authserviceprovider extends serviceprovider{ /** * the policy mappings for the application. * * @var array */ protected $policies = [ 'app\model' =--> 'app\policies\modelpolicy', ]; /** * register any application authentication / authorization services. * * @param \illuminate\contracts\auth\access\gate $gate * @return void */ public function boot(gatecontract $gate){ $this->registerpolicies($gate); // } }