laravel框架创建授权策略实例分析
Laravel  /  管理员 发布于 8年前   318
本文实例讲述了laravel框架创建授权策略。分享给大家供大家参考,具体如下: 在完成对未登录用户的限制之后,接下来我们要限制的是已登录用户的操作,当 id 为 1 的用户去尝试更新 id 为 2 的用户信息时,我们应该返回一个 403 禁止访问的异常。在 Laravel 中可以使用 授权策略 (Policy) 来对用户的操作权限进行验证,在用户未经授权进行操作时将返回 403 禁止访问的异常。 我们可以使用以下命令来生成一个名为 php artisan make:policy UserPolicy 所有生成的授权策略文件都会被放置在 让我们为默认生成的用户授权策略添加 app/Policies/UserPolicy.php 使用授权策略需要注意以下两点: Laravel 提供两种注册授权策略的方式,第一种是手动指定,第二种是 Laravel 5.8 新增功能 ―― 自动授权注册。为了方便起见,我们会使用第二种。 自动授权默认会假设 Model 模型文件直接存放在 app/Providers/AuthServiceProvider.php 授权策略定义完成之后,我们便可以通过在用户控制器中使用 我们需要为 这里 书写的位置如下: app/Http/Controllers/UsersController.php 更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。用户只能编辑自己的资料
1. 创建授权策略
UserPolicy
的授权策略类文件,用于管理用户模型的授权。app/Policies
文件夹下。update
方法,用于用户更新时的权限验证。update
方法接收两个参数,第一个参数默认为当前登录用户实例,第二个参数则为要进行授权的用户实例。当两个 id 相同时,则代表两个用户是相同用户,用户通过授权,可以接着进行下一个操作。如果 id 不相同的话,将抛出 403 异常信息来拒绝访问。$currentUser
是不是 NULL。未登录用户,框架会自动为其 所有权限 返回 false
;2. 注册授权策略
app
目录下,鉴于我们已将模型存放目录修改为 app/Models
,接下来还需自定义自动授权注册的规则,修改 boot()
方法:authorize
方法来验证用户授权策略。默认的 App\Http\Controllers\Controller
类包含了 Laravel 的 AuthorizesRequests
trait。此 trait 提供了 authorize
方法,它可以被用于快速授权一个指定的行为,当无权限运行该行为时会抛出 HttpException。authorize
方法接收两个参数,第一个为授权策略的名称,第二个为进行授权验证的数据。edit
和 update
方法加上这行:update
是指授权类里的 update
授权方法,$user
对应传参 update
授权方法的第二个参数。正如上面定义 update
授权方法时候提起的,调用时,默认情况下,我们 不需要 传递第一个参数,也就是当前登录用户至该方法内,因为框架会自动加载当前登录用户。您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号