[李景山php]每天laravel[038]-laravel 系统服务 --- 授权-1
来源:互联网 发布:c语言中 a表示什么 编辑:程序博客网 时间:2024/05/21 20:38
Authentication:认证
Authorization:授权
授权是对认证的一种补充。
认证:认证用户是否登录。
授权:授权用户是否有权限。
使用:Illnminate\Auth\Access\Gate 类: AuthServiceProvider :
这个就是中级验证里面的, 用户只能删除自己的 list 列表的功能
翻译:
定义能力:
我们可以在 Illuminate\Auth\Access\Gate 类中定义“能力”,让用户可以很容易的操作一个指定的方法。
这个 AuthServiceProvider 将会关联laravel 服务来方便的定义网页应用的能力。
举个例子:
让我定义“update-post”操作,简单点说就是当前用户执行一个Post模型的操作,需要定义当前用户的ID,跟产生这条数据的ID一样才可以。
代码如下:
public function boot(GateContract $gate){ $this->registerPolicies($gate); $gate->define('update-post',function($user,$post){ return $user->id === $post->user_id; });}
可以通过:class Based Abilites;
$gate->define('update-post','Class@method');
提前检查:
$gate->before(function($user,$ability){ if($user->isSuperAdmin()){ return true; }});
之后检查
$gate->after(function($user,$ability,$result,$atguments){});
检测Abilites:
通过 Gate Facade 验证进行验证。
这样几个方式:check,allows,denies 方法。
public function update($id){ $post = Post::findOrFail($id); if(Gate::denies('update-post',$post)){ abort(403); }}
针对于特殊用户的检测:
if(Gate::forUser($user)->allows('update-poot',$post)){}
0 0
- [李景山php]每天laravel[038]-laravel 系统服务 --- 授权-1
- [李景山php]每天laravel[036]-laravel 系统服务 --- 认证-1
- [李景山php]每天laravel[039]-laravel 系统服务 --- 分页
- [李景山php]每天laravel[037]-laravel 系统服务 --- 错误及日志
- [李景山php]每天laravel[031]-laravel 基础知识 --- 服务容器
- [李景山php]每天laravel-20160827|McryptEncrypter-1
- [李景山php]每天laravel-20160901|Dispatcher-1
- [李景山php]每天laravel-20160910|Filesystem-1
- [李景山php]每天laravel-20160914|FileSystemManager-1
- [李景山php]每天laravel-20160919|Writer-1
- [李景山php]每天laravel-20161001|Validator.php-1
- [李景山php]每天laravel-20161018|RedirectResponse.php-1
- [李景山php]每天laravel-20161020|Request.php-1
- [李景山php]每天laravel-20161102|CompileEngine.php-1
- [李景山php]每天laravel-20161117|ConnectionFatory.php-1
- [李景山php]每天laravel-20161129|BelongsToMany.php-1
- [李景山php]每天laravel-20160922|RedisServicProvider.php
- [李景山php]每天laravel-20160923|Hub.php
- 20.Valid Parentheses(Stack-Easy)
- struts2文件下载
- .png与.jpg的图片格式的区别?以及它们分别应用场景?
- mac 安装mercy 插件 遇到 unable load libltdl.7.dylib
- $()、$(())、${}、(())区别
- [李景山php]每天laravel[038]-laravel 系统服务 --- 授权-1
- 常被提到的排序算法二(选择排序)
- 动态添加未知个View,并动态设置点击事件
- 函数的调用-基本数据类型/引用类型
- python写入并获取剪切板内容
- 你还不知道mindmanager是什么?
- Lecture 15 Dynamic Programming
- 使用神经网络识别手写数字
- MySQL查询当天每个小时数据的平均值