Laravel授權策略

aba66發表於2021-11-17

1、建立授權策略

php artisan make:policy TestPolicy

***生成的授權策略檔案都會被放置在 app/Policies 資料夾下

2、建立策略方法

public function Test(User $currentUser, User $user)
    {
        return $currentUser->id === $user->id;
    }

***Test 方法接收兩個引數,第一個引數預設為當前登入使用者例項,第二個引數則為要進行授權的使用者例項。當兩個 id 相同時,則代表兩個使用者是相同使用者,使用者通過授權,可以接著進行下一個操作。如果 id 不相同的話,將丟擲 403 異常資訊來拒絕訪問。

3、註冊授權策略

***app/Providers/AuthServiceProvider.php檔案中修改

public function boot()
    {
        $this->registerPolicies();
        Gate::guessPolicyNamesUsing(function ($modelClass) {
            return 'App\Policies\\'.class_basename($modelClass).'Policy';
        });
    }

4、控制器中使用

$this->authorize('Test', $user);
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章