laravel spatie:身分驗證與權限管理
Laravel Spatie 是 Laravel 中管理使用者角色和權限最強大的軟體包之一。
Spatie 的 Laravel Permission 讓實施 RBAC(基於角色的存取控制)變得比以往更容易。
在本文中,我們將了解如何正確安裝和配置 Shield 插件,以快速輕鬆地使用權限管理。
預計閱讀時間: 4 minuti
Laravel 權限
Laravel Permission 是一個功能強大的套件,用於在 Laravel 應用程式中定義角色、分配權限和管理使用者存取權限。它具有易於使用的語法和強大的功能。
在 Filament 中有一個插件,可以使用 spatie / Laravel-permission 來管理 Filament 面板中的資源、頁面和小部件的權限。
要求
為了更好地理解本文的內容,我們建議您先閱讀我解釋的文章 基本概念 長絲,和 安裝 長絲。我還建議您深入研究儲存庫上的項目 GitHub上 並始終在關於長絲的文章.
燈絲屏蔽
燈絲屏蔽 由經驗豐富的全端開發人員 Bezhan Salleh 創建。使用 Filament Shield,您可以輕鬆管理支援最新 Laravel spatie/權限的角色和權限。
如果我們想為我們的專案安裝 Filament Shield,我們需要做的第一件事是執行以下命令:
composer require bezhansalleh/filament-shield
現在我們需要添加 Trait HasRoles
在 model User
,因此 use Spatie\Permission\Traits\HasRoles
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable implements FilamentUser
{
use HasFactory, Notifiable, HasRoles;
透過這種方式,我們將角色和權限的管理與模型連結起來 User
.
然後我們發布文件 config
我們使用以下命令設定配置:
php artisan vendor:publish --tag=filament-shield-config
我們在裡面註冊插件AdminPanelProvider
對於所需的燈絲面板,我們在文件中使用此語法來執行此操作 app\Providers\Filament\AdminPanelProvider.php
,
-> plugin ([
\BezhanSalleh\FilamentShield\FilamentShieldPlugin :: make ()
])
安裝
我們現在安裝它 盾 di 燈絲 在我們的專案中,我們執行以下命令:
php artisan shield:install
現在我們有一個帶有角色表的新角色選單,預設角色是超級管理員,
當我們建立角色時,我們將看到角色建立表單,其中包含我們建立的所有範本和資源,以及所有角色的權限以及他們可以執行和不能執行的操作。
文件裡面 config/filament-shield.php
權限和角色有不同的設定參數。
Laravel Spatie 盾 管理 Filament 資源的權限,並以兩種方式進行:預設方式和自訂方式。在預設模式下,它管理 Filament 資源的預設權限,並且前綴在檔案中預先定義 config/filament-shield.php
.
如果您需要新增單一權限(例如鎖定)並使其可用於所有資源,只需將其新增至上面列出的配置金鑰即可。
如果您只需要一種資源的特定權限,則需要使用自訂方法。如果你有這個需求, 您可以點擊此處了解更多信息i.
為目錄中的每個資源定義策略 app/Policies
.
為了使 Filament Shield 角色正常運作,您必須授予對 RoleResource
手段 RolePolicy
,為此,您應該啟用該參數 register_role_policy
,在你的 AuthServiceProvider
:
您可以在儲存庫中找到此範例以及完整的配置,您可以查看它 點擊此連結訪問 GitHub 上的存儲庫.