Laravel 5.1如何高效实现ACL用户权限控制与验证?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1841个文字,预计阅读时间需要8分钟。
请提供您需要改写的相关原创开头的内容,我会根据您的要求进行改写。
本篇文章给大家分享的内容是关于laravel 5.1框架中的acl用户授权及权限检查功能的实现,有一定的参考价值,希望可以帮助到有需要的朋友。
1、引言
Laravel提供的开箱即用的认证功能使得用户注册、登录、退出和密码重置变得便捷和简单。
但是如果你需要控制访问站点特定部分,或者让非管理员打开/关闭特定页面,又或者确保某些用户只能编辑自己发布的东西(如文章),那么 你就需要引入类似BeatSwitch Lock这样的工具或者自己手动编写这样的功能。我们将这样的功能称之为ACL:Access Control Lists(访问控制列表),用于定义用户基于其用户记录属性操作或查看特定事物的权限。
幸运的是,从Laravel 5.1.11开始,Laravel提供了开箱即用的授权功能用于实现上述需求,我们不再需要做任何额外工作,用就是了。
注:在开始本节之前,请参考升级指南将Laravel升级到Laravel 5.1.11,否则不能实现相关功能。
2、能做什么?
Laravel提供的开箱即用的ACL被称作Gate(这并不是一个类似Spark的产品名称,而只是一个类和门面的名称)。
使用Gate类(注入或使用Gate门面)允许我们轻松检查某个用户(当前登录用户或指定用户)是否允许操作特定事物。检查代码如下:
if (Gate::denies('update-post', $post)) { abort(403); }
将这段代码放到控制器中,它将会使用定义好的规则update-post来检查当前认证用户是否有权限更新指定文章。
本文共计1841个文字,预计阅读时间需要8分钟。
请提供您需要改写的相关原创开头的内容,我会根据您的要求进行改写。
本篇文章给大家分享的内容是关于laravel 5.1框架中的acl用户授权及权限检查功能的实现,有一定的参考价值,希望可以帮助到有需要的朋友。
1、引言
Laravel提供的开箱即用的认证功能使得用户注册、登录、退出和密码重置变得便捷和简单。
但是如果你需要控制访问站点特定部分,或者让非管理员打开/关闭特定页面,又或者确保某些用户只能编辑自己发布的东西(如文章),那么 你就需要引入类似BeatSwitch Lock这样的工具或者自己手动编写这样的功能。我们将这样的功能称之为ACL:Access Control Lists(访问控制列表),用于定义用户基于其用户记录属性操作或查看特定事物的权限。
幸运的是,从Laravel 5.1.11开始,Laravel提供了开箱即用的授权功能用于实现上述需求,我们不再需要做任何额外工作,用就是了。
注:在开始本节之前,请参考升级指南将Laravel升级到Laravel 5.1.11,否则不能实现相关功能。
2、能做什么?
Laravel提供的开箱即用的ACL被称作Gate(这并不是一个类似Spark的产品名称,而只是一个类和门面的名称)。
使用Gate类(注入或使用Gate门面)允许我们轻松检查某个用户(当前登录用户或指定用户)是否允许操作特定事物。检查代码如下:
if (Gate::denies('update-post', $post)) { abort(403); }
将这段代码放到控制器中,它将会使用定义好的规则update-post来检查当前认证用户是否有权限更新指定文章。

