首頁  >  文章  >  php框架  >  Laravel - 授權

Laravel - 授權

PHPz
PHPz原創
2024-08-27 10:51:04615瀏覽

在上一章中,我們學習了 Laravel 中的身份驗證過程。本章向您解釋 Laravel 中的授權流程。

身份驗證和授權之間的區別

在進一步學習 Laravel 中的授權流程之前,讓我們先了解一下身分驗證和授權之間的差異。

身份驗證中,系統或 Web 應用程式透過使用者提供的憑證來識別其使用者。如果發現憑證有效,則它們已通過身份驗證,否則則不是。

授權中,系統或網路應用程式檢查經過身份驗證的使用者是否可以存取他們嘗試存取或發出請求的資源。換句話說,它檢查他們對所請求資源的權利和權限。如果發現可以存取該資源,則表示已獲得授權。

因此,身份驗證涉及檢查使用者憑證的有效性,授權涉及檢查經過身份驗證的使用者對資源擁有的權利和權限。

Laravel 中的授權機制

Laravel 提供了一個簡單的授權機制,包含兩種主要方式,即 GatesPolicies.

編寫門和政策

門用於確定使用者是否有權執行指定的操作。它們通常使用 Gate Facade 在 App/Providers/AuthServiceProvider.php 中定義。門也是為執行授權機製而聲明的函數。

策略在陣列中聲明,並在使用授權機制的類別和方法中使用。

以下程式碼行向您解釋如何使用 Gates 和 Policies 在 Laravel Web 應用程式中授權使用者。請注意,在本例中,boot函數用於授權使用者。

<?php

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 = [
      &#39;App\Model&#39; => &#39;App\Policies\ModelPolicy&#39;,
   ];
   
   /**
      * Register any application authentication / authorization services.
      *
      * @param \Illuminate\Contracts\Auth\Access\Gate $gate
      * @return void
   */
   
   public function boot(GateContract $gate) {
      $this->registerPolicies($gate);
      //
   }
}


以上是Laravel - 授權的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn