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