用户授权

更新时间: 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 数组。但是你可以在 AuthServiceProvider 的 boot 方法里使用 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 中文文档 信息

Unix/Linux编程实践教程

Unix/Linux编程实践教程

Bruce Molay、杨宗源、黄海涛 / 杨宗源、黄海涛 / 清华大学出版社 / 2004-10-1 / 56.00元

操作系统是计算机最重要的系统软件。Unix操作系统历经了几十年,至今仍是主流的操作系统。本书通过解释Unix的工作原理,循序渐进地讲解实现Unix中系统命令的方法,让读者理解并逐步精通Unix系统编程,进而具有编制Unix应用程序的能力。书中采用启发式、举一反三、图示讲解等多种方法讲授,语言生动、结构合理、易于理解。每一章后均附有大量的习题和编程练习,以供参考。 本书适合作为高等院校计算机及......一起来看看 《Unix/Linux编程实践教程》 这本书的介绍吧!

HTML 压缩/解压工具

HTML 压缩/解压工具

在线压缩/解压 HTML 代码

正则表达式在线测试

正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具

HSV CMYK 转换工具

HSV CMYK互换工具