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