如何通过Laravel API和调用应用程序使用权限

cqoc49vn  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(107)

我已经在Laravel中设置了一个API,使用Passport进行身份验证,并使用spatie/laravel权限添加权限功能。我还有一个调用应用程序,同样是用Laravel编写的。我可以从调用应用程序到API进行身份验证,但是我如何确保调用应用程序知道可用的权限?在API和调用应用程序中,用户/角色/权限表应该是什么样子的?实际上,我想使用如下代码:$user-〉可以在两个应用程序中('do something')。

5jvtdoz2

5jvtdoz21#

我对Spatie软件包的理解是,它允许你进行$user->can('do something')这样的代码调用,并且在安装软件包后运行迁移时,阅读Github页面,它会创建默认名为“role”和“permission”的表。换句话说,这是一个正确配置两个应用中的模型和数据库连接的问题。特别是两个应用程序的用户模型和权限表。
澄清一下,我想你是在问这些问题:
1.第二个应用程序如何知道哪些权限可用,
1.您如何能够在两个应用程序中使用类似“$user-〉can('do something')”这样的语句,并接触完全相同的数据。
答案:
1.如果“permission”和“role”表已经存在,那么如果您的API没有一些端点来请求已经可用的角色或权限,那么您需要定义一个新的端点。(通过API),或者它必须从第二个应用程序获取。* 这取决于您的两个应用程序如何相互交互 *
1.您必须确保配置第二个应用程序,使“User”模型引用的表与第一个应用程序用于User模型的表相同。本质上,模型被用作到表的接口,因此如果两个应用程序都定义了引用同一个表的User模型,并且都被配置为连接到该表所在的同一个数据库,Laravel的用户模型将“只知道”有问题的数据(这是Laravel的Eloquent for Models的基础)。
另外,我还没有使用spatie/laravel-permission包,但是关于问题#1,我确实在文档中找到了一个函数,它也可以用来从“权限表”中以列表形式获取当前设置的权限:
Permission Model, getPermissions
作为参考,关于拉拉拉威尔的口才和模型(这可能是你已经知道的东西,但我会离开这个链接无论如何):
Laravel Eloquent ORM

相关问题