跳到主要内容

创建组织 (Organization)

想象一下,你正在构建一个 多租户应用(例如,多租户 SaaS 应用),它为众多客户提供服务,每个客户拥有一个专用的租户。当一个新客户到来时,他们会创建一个新账户,以及一个用于其自身业务的新租户。

就像你注册了 Logto Cloud 账户并拥有自己的 Logto 租户一样。你也可以在你的应用中实现相同的架构,使用 Logto 的“组织 (Organization)”功能。

创建你的组织 (Organizations)

有两种方法可以为你的应用创建组织 (Organizations)。

通过 Logto 控制台创建

通过 Logto 控制台 UI 手动创建你的组织 (Organizations)。前往 控制台 > 组织 (Organizations) 创建组织 (Organization),分配成员和角色 (Roles),并自定义组织 (Organization) 登录体验 UI。

如果你想批量创建共享相同角色 (Role)权限 (Permission)设置的类似组织 (Organizations),可以创建一个“组织模板”。

通过 Logto Management API 创建

在控制台 UI 上点击按钮效果很好,但我们真正想要的是让终端用户自助创建组织 (Organizations),并在你的应用中自行管理组织 (Organizations)。因此,你需要在你的应用中实现这些功能,借助 Logto Management API。

备注:

如果你不熟悉 Logto Management API,请确保先阅读这些文档。

Management API与 Management API 交互

假设你已经通过机器对机器 (M2M) 机制将你的 API 后端服务器连接到 Logto Management API 端点,并获取了 M2M 访问令牌 (Access token)。

使用 Management API 创建一个组织 (Organization)(API 参考):

curl \
-X POST https://[tenant_id].logto.app/api/organizations \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tenantId":"string","name":"string","description":"string","customData":{},"isMfaRequired":false,"branding":{"logoUrl":"string","darkLogoUrl":"string","favicon":"string","darkFavicon":"string"},"createdAt":1234567890}'

响应示例 (201)

{
"tenantId": "string",
"id": "string",
"name": "string",
"description": "string",
"customData": {},
"isMfaRequired": false,
"branding": {
"logoUrl": "string",
"darkLogoUrl": "string",
"favicon": "string",
"darkFavicon": "string"
},
"createdAt": 1234567890
}

接下来,你可以为你的应用实现自己的 API。因此,当你的用户在应用中执行“创建组织 (Organization)”操作时,你可以通过检查他们的权限来验证请求,然后调用 Logto Management API 来完成其余的工作。

验证用户请求中的组织令牌 (Organization token)

在你的应用中,当用户在组织 (Organization) 的上下文中执行操作时,他们需要使用组织令牌 (Organization token) 而不是常规的访问令牌 (Access token)。组织令牌 (Organization token) 是一种特殊的 JWT,包含组织 (Organization) 权限。就像任何 JWT 访问令牌 (Access tokens)一样,你可以解码令牌声明并验证“权限 (Scope)”声明以进行权限检查。

查看这些文档以获取更多详细信息:

验证组织令牌 (Organization tokens)

保护你的 API

相关资源

使用 Postgres 实现多租户