📜  Laravel-授权

📅  最后修改于: 2020-10-23 08:09:36             🧑  作者: Mango


在上一章中,我们研究了Laravel中的身份验证过程。本章介绍了Laravel中的授权过程。

身份验证和授权之间的区别

在进一步学习Laravel中的授权过程之前,让我们了解身份验证和授权之间的区别。

身份验证中,系统或Web应用程序通过用户提供的凭据来识别其用户。如果发现凭据有效,则对它们进行身份验证,否则将不进行身份验证。

授权中,系统或Web应用程序检查经过身份验证的用户是否可以访问他们尝试访问的资源或提出请求。换句话说,它检查它们对所请求资源的权限。如果发现他们可以访问资源,则表示它们已被授权。

因此,认证涉及检查用户凭证的有效性,而授权涉及检查对已认证用户拥有的资源的权限。

Laravel中的授权机制

Laravel提供了一种简单的机制,包含两种主要方式,即盖茨政策授权。

写门和政策

Gates用于确定用户是否有权执行指定的操作。通常使用Gate门面在App / Providers / AuthServiceProvider.php中定义它们。门也是为执行授权机制而声明的功能。

策略在数组中声明,并在使用授权机制的类和方法中使用。

以下代码行说明了如何使用Gates和Policies在Laravel Web应用程序中授权用户。请注意,在此示例中,引导函数用于授权用户。

 '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);
      //
   }
}