- Laravel 教程
- Laravel - 主页
- Laravel - 概述
- Laravel - 安装
- Laravel - 应用程序结构
- Laravel - 配置
- Laravel - 路由
- Laravel - 中间件
- Laravel - 命名空间
- Laravel - 控制器
- Laravel - 请求
- Laravel-Cookie
- Laravel - 响应
- Laravel - 视图
- Laravel - 刀片模板
- Laravel - 重定向
- Laravel - 使用数据库
- Laravel - 错误和日志记录
- Laravel - 表单
- Laravel - 本地化
- Laravel - 会话
- Laravel - 验证
- Laravel - 文件上传
- Laravel - 发送电子邮件
- Laravel - AJAX
- Laravel - 错误处理
- Laravel - 事件处理
- Laravel - 外观
- Laravel - 合约
- Laravel - CSRF 保护
- Laravel - 身份验证
- Laravel - 授权
- Laravel - Artisan 控制台
- Laravel - 加密
- Laravel - 哈希
- 了解发布流程
- Laravel - 访客用户门
- Laravel - Artisan 命令
- Laravel - 分页自定义
- Laravel - 转储服务器
- Laravel - 操作 URL
- Laravel 有用资源
- Laravel - 快速指南
- Laravel - 有用的资源
- Laravel - 讨论
Laravel - 授权
在上一章中,我们学习了 Laravel 中的身份验证过程。本章向您解释 Laravel 中的授权过程。
身份验证和授权之间的区别
在进一步了解 Laravel 中的授权过程之前,让我们先了解身份验证和授权之间的区别。
在身份验证中,系统或 Web 应用程序通过用户提供的凭据来识别用户。如果它发现凭证有效,则它们通过身份验证,否则则不通过。
在授权过程中,系统或 Web 应用程序检查经过身份验证的用户是否可以访问他们尝试访问或发出请求的资源。换句话说,它检查他们对所请求资源的权利和权限。如果发现他们可以访问该资源,则意味着他们已被授权。
因此,身份验证涉及检查用户凭证的有效性,授权涉及检查经过身份验证的用户对资源拥有的权利和许可。
Laravel 中的授权机制
Laravel 提供了一种简单的授权机制,其中包含两种主要方式,即Gates和Policies。
编写门和策略
门用于确定用户是否有权执行指定的操作。它们通常使用 Gate Facade在App/Providers/AuthServiceProvider.php中定义。门也是为执行授权机制而声明的函数。
策略在数组中声明,并在使用授权机制的类和方法中使用。
以下代码行解释了如何使用 Gates 和 Policies 在 Laravel Web 应用程序中对用户进行授权。请注意,在本示例中,引导功能用于对用户进行授权。
<?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\Gate $gate * @return void */ public function boot(GateContract $gate) { $this->registerPolicies($gate); // } }