在上一章中,我们研究了Laravel中的身份验证过程.本章将向您介绍Laravel中的授权过程.
身份验证和授权之间的区别
在继续深入了解Laravel中的授权过程之前,让我们了解身份验证和授权之间的区别.
在身份验证中,系统或Web应用程序通过其提供的凭据识别其用户.如果它发现凭据有效,则对它们进行身份验证,否则不进行身份验证.
在授权中,系统或Web应用程序检查是否已通过身份验证用户可以访问他们尝试访问或请求的资源.换句话说,它会检查所请求资源的权限.如果它发现他们可以访问资源,则表示他们已获得授权.
因此,身份验证涉及检查用户凭据的有效性,并且授权涉及检查经过身份验证的用户拥有的资源的权限.
Laravel中的授权机制
Laravel提供了简单的授权机制,包含两种主要方式,即盖茨和政策.
写入门和政策
Gates用于确定用户是否有权执行指定的操作.它们通常使用Gate facade在 App/Providers/AuthServiceProvider.php 中定义.盖茨也是为执行授权机制而声明的函数.
策略在数组中声明,并在使用授权机制的类和方法中使用.
以下代码行说明如何使用Gates和Policies在Laravel Web应用程序中授权用户.请注意,在此示例中, boot 函数用于授权用户.
'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); // }}