Laravel 授權(quán)

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);
      //
   }
}

下一節(jié):laravel artisan控制臺(tái)

laravel 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频