lanos / laravel-auth0-multi-tenancy-management
为Auth0管理API提供一系列优雅的接口类
v1.08
2023-06-25 20:17 UTC
Requires
- auth0/login: ^7.4
- guzzlehttp/guzzle: ^7.0.1
- illuminate/console: ^8.37|^9.0
- illuminate/contracts: ^8.37|^9.0
- illuminate/database: ^8.37|^9.0
- illuminate/http: ^8.37|^9.0
- illuminate/log: ^8.37|^9.0
- illuminate/notifications: ^8.37|^9.0
- illuminate/routing: ^8.37|^9.0
- illuminate/support: ^8.37|^9.0
- illuminate/view: ^8.37|^9.0
- laravel/framework: ^8.37|^9.0
README
Laravel Auth0 多租户管理
这是一个不完整的列表,但以下项目已经测试并且正在使用。
简介
此包是为了与主要的auth0包一起使用而构建的。不幸的是,该包管理API功能有限/外观。此包旨在解决这一问题。
进度
到目前为止,以下项目正在运行
- 身份验证
- 用户管理
- 品牌管理
- 组织管理
随着我完成其他模块,它们将列在上方。如果Auth0的任何人希望将此额外功能合并到主包中,请随意分支并提取您所需的内容,我唯一的要求是给予我信用。
文档说明
最终将编写更全面的文档,我正在业余时间工作,所以请多谅解。
目前,我将解释简单的原理。我本质上为API文档中的每个端点创建了静态函数。
数据格式化
除非指定其他,所有需要正文数据的POST端点应严格按照相应文档中的描述进行发布(您可以将其作为关联数组发布,该包将将其转换为JSON)。查询参数也是如此,所有内容都与文档完全一致。
身份验证设置
您需要在您的Auth0租户内设置一个机器到机器的应用程序(客户端),该应用程序具有管理API访问权限。理想情况下,您应使用仅访问管理API的应用程序,这样从这些交互中生成的任何令牌都不会消耗您的M2M配额。
您可以将这些设置在.env文件中如下所示
AUTH0_MGMT_CLIENT_ID=
AUTH0_MGMT_CLIENT_SECRET=
AUTH0_MGMT_DOMAIN=
AUTH0_MGMT_AUDIENCE=
略微不同的环境变量的原因可能是您希望使用一个单独的应用程序来验证您的用户并充当您的API。正如上述建议,这是由于令牌配额。
示例
一旦您添加了.env变量,您应该可以正常使用。当您进行第一次请求时,该包将自动使用上述凭证获取令牌并将其存储在缓存中。后续请求不需要这样做,除非当然令牌已过期,然后该包将获取新的令牌。
每个端点实体都作为可导入的类可用。由于类命名约定具有通用性,创建这些作为预导入的外观似乎存在争议,它们可能与其他包冲突。
一旦我有更多时间,我将探讨这个问题,现在导入类没有坏处。
获取用户
<?php
use Lanos\Auth0MultiManagement\Modules\User
public function getUsers(){
$users = User::get();
// Alternatively you can apply query paramters as desired
$queryParams = [
"page" => 2,
"per_page" => 20
];
// This will get page 2 of the results with 20 per page
$paginated = User::get($queryParams);
}
获取用户组织
获取用户所属的租户/组织。对于多租户应用程序来说非常有用。再次,具有相同的分页查询参数选项。
<?php
import Lanos\Auth0MultiManagement\Modules\User
public function getUserOrganizations($userID){
$userOrganizations = User::organizations($userID);
// Alternatively you can apply query paramters as desired
$queryParams = [
"page" => 2,
"per_page" => 20
];
// This will get page 2 of the results with 20 per page
$paginated = User::organizations($queryParams);
}
将用户添加到组织
<?php
import Lanos\Auth0MultiManagement\Modules\Organization
public function addUsesrToOrganization($organizationID){
$user_ids = [
"auth0|507f1f77bcf86cd799439020",
"auth0|507f1f77bcf86cd198439125",
];
$addUser = Organization::addMembers($organizationID, $user_ids);
// THIS WILL ADD THE 2 ABOVE USER IDS TO THIS ORGANIZATION
}
许可协议
有关本项目的许可协议,请参阅 LICENSE.md。