Laravel 授權(quán)
laravel 授權(quán)
在前一章中,我們已經(jīng)研究了laravel中的認證過程。本章向您介紹laravel的授權(quán)流程。
身份驗證和授權(quán)之間的區(qū)別
在繼續(xù)深入了解laravel的授權(quán)過程之前,讓我們了解身份驗證和授權(quán)之間的區(qū)別。
在 身份驗證中 ,web應(yīng)用程序或系統(tǒng)通過定義的憑證來驗證用戶。如果憑證按照記錄進行匹配,則它們通過身份驗證,否則它們不會。
當我們描述 授權(quán) 這個術(shù)語時,它只是描述驗證,如果經(jīng)過驗證的用戶可以訪問為其定義的資源。換句話說,它驗證了他們對請求和定義的資源的權(quán)利和許可。如果經(jīng)過認證的用戶可以按照定義訪問資源,則表示他們已被授權(quán)。
因此, 認證 涉及檢查用戶證書的有效性,并且 授權(quán) 涉及檢查經(jīng)認證用戶具有的資源上的權(quán)限和許可。
laravel的授權(quán)機制
laravel提供了一種簡單的授權(quán)機制,其中包含兩種主要方式,即 門 和 策略 。
寫蓋茨和政策
門用于確定用戶是否有權(quán)執(zhí)行指定的操作。它們通常使用gate facade 在 app / providers / authserviceprovider.php中 定義。門也是為執(zhí)行授權(quán)機制而聲明的函數(shù)。
策略在數(shù)組中聲明,并在使用授權(quán)機制的類和方法中使用。
以下代碼行解釋了如何使用門和策略在laravel web應(yīng)用程序中授權(quán)用戶。請注意,在本例中, 引導 功能用于授權(quán)用戶。
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); // } }
相關(guān)文章
- CodeIgniter 應(yīng)用程序架構(gòu)
- CodeIgniter 基本概念
- CodeIgniter 文件上傳
- CodeIgniter Flashdata
- CodeIgniter 安全
- CakePHP 刪除記錄
- CakePHP 會話管理
- CakePHP 日期和時間
- FuelPHP 架構(gòu)概述
- FuelPHP 路由
- FuelPHP 視圖
- FuelPHP 模型和數(shù)據(jù)庫
- FuelPHP 表單編程
- FuelPHP 驗證
- FuelPHP 工作示例
- Laravel 概述
- Laravel 應(yīng)用程序結(jié)構(gòu)
- Laravel 控制器
- Laravel Cookie
- Laravel Blade模板