Laravel授权策略
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 协议》,转载必须注明作者和本文链接
推荐文章: