Laravel 中的授权机制
Laravel 提供了一种简单的授权机制,其中包含两种主要方式,即Gates和Policies.
编写门和策略
门用于确定用户是否有权执行指定的操作。它们通常定义在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 = [
'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);
//
}
}