Laravel 授权

Laravel 授权

在上一章中,我们学习了Laravel中的身份验证过程。本章将解释在Laravel中的授权过程。

身份验证和授权的区别

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

身份验证 中,系统或Web应用程序通过用户提供的凭据来识别用户。如果系统发现凭据有效,用户就会被认证,否则就不会。

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

因此, 身份验证 涉及检查用户凭据的有效性,而 授权 涉及检查已经经过身份验证的用户对资源的权利和权限。

Laravel中的授权机制

Laravel提供了一种简单的授权机制,包括两个主要方式,即 Gates(门)Policies(策略)

编写门和策略

门用于确定用户是否被授权执行特定的操作。它们通常在 App/Providers/AuthServiceProvider.php 中使用Gate门面进行定义。门也是用于执行授权机制的函数。

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

以下代码段为您解释如何在Laravel Web应用程序中使用门和策略对用户进行授权。请注意,在此示例中,使用 boot(启动) 函数对用户进行授权。

<?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\Gategate
      * @return void
   */

   public function boot(GateContract gate) {this->registerPolicies($gate);
      //
   }
}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程