Laravel Passport 在 oauth/token API 中发送动态令牌范围

Rav*_*yar 5 user-roles user-permissions laravel laravel-passport

我有 user_master 表、role_master 表和一个名为 user_roles 的子表,其中包含用户 id 和角色 id 的引用,指示哪个用户属于哪个角色。

我还有一张权限表,它指示哪些权限属于哪些角色。

例如:


用户主表:

id 用户_主密码

约翰一书 some_md5

2 简 some_md5


role_master 表:

id 角色名称

1 管理员

2 数据输入操作员


用户角色:

id 用户_id 角色_id

1 1 1

2 2 2


权限:

id 权限_名称 角色_id

1 内容.创建 1

2 内容.创建 2

3内容.删除1

Laravel Passport 令牌范围文档中,提到我们可以在 中传递令牌范围AuthServiceProviderAuthServiceProvider但在这种情况下,角色和权限范围是动态的,因此从数据库表加载它们是最佳实践吗?

oauth/tokenAPI 中,我们应该传递范围。但根据这个动态示例,我们不能将 * 作为范围传递,因为某些角色的可访问性有限,而某些角色可以访问所有内容。因此,一旦我们从网络/移动应用程序发送了用户名和密码POST,那么我们如何传递范围,因为在oauth/token触发之前,我们不会有用户角色和范围信息。

任何帮助真的很感激。谢谢!