用户授权

更新时间: 2019-08-01 16:47

简介

除了内置的 用户认证 服务之外, Lumen 还提供了用户授权和资源访问控制的方案。有很多种方法与辅助函数能帮你处理授权逻辑。

总的来说,Lumen 中的使用和 Laravel 大同小异,我们会在这个文档中指出不同的地方,完整的用户授权文档还需要查阅 Laravel 文档

与 Laravel 的差异

定义权限

与 Laravel 相比,Lumen 的用户授权的不同之处在于如何定义权限。在 Lumen 中,你可以很方便的在你的 AuthServiceProvider 文件中使用 Gate facade 来定义你的权限:

Gate::define('update-post', function ($user, $post) {
    return $user->id === $post->user_id;
});

定义授权策略

和 Laravel 不一样的是,Lumen 的 AuthServiceProvider 中没有 $policies 数组。但是你可以在 AuthServiceProviderboot 方法里使用 Gate facade 来调用 policy 方法:

Gate::policy(Post::class, PostPolicy::class);

更多关于授权策略的信息,请参阅 Laravel 文档

检查权限

你可以像 Laravel 一样使用 Gate facade 来检查权限,首先你要确保你的 bootstrap/app.php 文件开启了 facade。 值得一提的是我们不需要将 User 实例传递给 allows 方法,认证过的用户会自动传参到用户授权的回调中:

if (Gate::allows('update-post', $post)) {
    //
}

if (Gate::denies('update-post', $post)) {
    abort(403);
}

当然你也可以传递 User 实例来检查他的权限:

if ($request->user()->can('update-post', $post)) {
    // 用户拥有更新内容的权限...
}

if ($request->user()->cannot('update-post', $post)) {
    abort(403);
}

查看更多 Laravel 中文文档 信息

运营有道:重新定义互联网运营

运营有道:重新定义互联网运营

李明轩 / 机械工业出版社 / 2017-7-31 / 69.00元

本书是前百度资深运营专家多年运营经验的总结,是作者运营千万级用户规模的大型互联网产品的实操经验复盘,是作者在“在行”上为近百位CEO和高管提供互联网运营咨询服务后对互联网运营需求的深入洞见。 本书的思想基础是“运营必须以用户为中心”,从产品、用户、市场3个维度对互联网运营重新进行了系统性的梳理:从道的层面解读并重新定义运营方法论,从术的层面围绕方法论提出行之有效的解决方法和实际案例。重点不在......一起来看看 《运营有道:重新定义互联网运营》 这本书的介绍吧!

JS 压缩/解压工具

JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具

html转js在线工具

html转js在线工具

RGB HSV 转换

RGB HSV 转换

RGB HSV 互转工具