开发手册 欢迎您!
软件开发者资料库

Laravel - 授权

Laravel授权 - 从简单和简单的步骤学习Laravel,从基本到高级概念,包括概述,安装,应用程序结构,配置,路由,中间件,命名空间,控制器,请求,Cookie,响应,视图,刀片模板,重定向,工作数据库,错误和日志记录,表单,本地化,会话,验证,文件上传,发送电子邮件,Ajax,错误,事件处理,外观,安全性,合同,CSRF保护,身份验证,授权,工匠控制台,加密,哈希,了解发布处理。

在上一章中,我们研究了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);      //   }}