Laravel 授权
在前一章中,我们已经研究了Laravel中的认证过程。本章向您介绍Laravel的授权流程。
身份验证和授权之间的区别
在继续深入了解Laravel的授权过程之前,让我们了解身份验证和授权之间的区别。
在 身份验证中 ,Web应用程序或系统通过定义的凭证来验证用户。如果凭证按照记录进行匹配,则它们通过身份验证,否则它们不会。
当我们描述 授权 这个术语时,它只是描述验证,如果经过验证的用户可以访问为其定义的资源。换句话说,它验证了他们对请求和定义的资源的权利和许可。如果经过认证的用户可以按照定义访问资源,则表示他们已被授权。
因此, 认证 涉及检查用户证书的有效性,并且 授权 涉及检查经认证用户具有的资源上的权限和许可。
Laravel的授权机制
Laravel提供了一种简单的授权机制,其中包含两种主要方式,即 门 和 策略 。
写盖茨和政策
门用于确定用户是否有权执行指定的操作。它们通常使用Gate facade 在 App / Providers / AuthServiceProvider.php中 定义。门也是为执行授权机制而声明的函数。
策略在数组中声明,并在使用授权机制的类和方法中使用。
以下代码行解释了如何使用门和策略在Laravel Web应用程序中授权用户。请注意,在本例中, 引导 功能用于授权用户。
<?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); // } }
Laravel框架提供了三种通过命令行进行交互的主要工具: Artisan,Ticker 和 REPL 。本章详细解释了Artisan。 工匠介绍Artisan是Laravel经常使用的命令行 ...