4.1 KiB
在 Angular UI 中的多租户支持
ABP Angular UI 支持多租户,以下是与多租户相关的一些特性:
租户页面
在上面的页面中,您可以:
- 查看所有租户。
- 创建新的租户。
- 编辑现有租户。
- 删除租户。
租户切换组件
您可以在 MVC Account Public Module 的子页面(如登录页面)中使用租户切换框来在现有租户之间切换。Angular UI 从 application-configuration
响应中获取选定的租户,并在每个请求中将租户 ID 作为 __tenant
header 发送到后端。
域名/子域名租户解析器
注意: 如果要执行下面的步骤,您还应该实现后端的域名/子域名租户解析器功能。请参阅多租户文档中的域名/子域名租户解析器以了解后端实现。
Angular UI 可以从运行 URL 中获取租户名称。您可以通过子域名(如 mytenant1.mydomain.com)或整个域名(如 mytenant.com)来确定当前租户。要做到这一点,您需要在环境中设置 application.baseUrl
属性:
子域名解析器:
// environment.prod.ts
export const environment = {
//...
application: {
baseUrl: "https://{0}.mydomain.com/",
},
//...
};
{0} 是用于确定当前租户唯一名称的占位符。
在上述配置完成后,如果您的应用程序运行在 mytenant1.mydomain.com
上,应用程序将获取租户名称为 mytenant1。接下来,应用程序将调用 /api/abp/multi-tenancy/tenants/by-name/mytenant1
端点来检查租户是否存在。如果租户(mytenant1)存在,则应用程序将保留此租户数据,并在每个请求中将其 id
作为 __tenant
header 发送到后端。如果租户不存在,则应用程序不会将 __tenant
header 发送到后端。
重要提示: 如果在
baseUrl
中使用了占位符({0}),则子页面(如登录页面)中AccountLayoutComponent
中的租户切换组件将被隐藏。
域名解析器:
// environment.prod.ts
export const environment = {
//...
application: {
baseUrl: "https://{0}.com/",
},
//...
};
配置完成后,如果您的应用程序运行在 mytenant.com
上,应用程序将获取租户名称为 mytenant。
租户特定的入口
在环境中,可以将占位符 {0} 放入 API URL 中以确定租户特定的入口。
// environment.prod.ts
export const environment = {
//...
application: {
baseUrl: "https://{0}.mydomain.com/",
//...
},
oAuthConfig: {
issuer: "https://{0}.ids.mydomain.com",
//...
},
apis: {
default: {
url: "https://{0}.api.mydomain.com",
},
AbpIdentity: {
url: "https://{0}.identity.mydomain.com",
},
},
};
重要提示:
application.baseUrl
和baseUrl
属性中的{0}
占位符是必需的,以便从运行 URL 中获取租户。API URL 中的其他占位符是可选的。
在上述配置完成后,如果您的应用程序运行在 mytenant1.mydomain.com
上,应用程序将获取租户名称为 mytenant1 ,并在应用程序初始化时将环境对象替换为 EnvironmentService
中的以下内容:
// environment object in EnvironmentService
{
//...
application: {
baseUrl: 'https://mytenant1.mydomain.com/',
//...
},
oAuthConfig: {
issuer: 'https://mytenant1.ids.mydomain.com',
//...
},
apis: {
default: {
url: 'https://mytenant1.api.mydomain.com',
},
AbpIdentity: {
url: 'https://mytenant1.identity.mydomain.com',
},
},
}
替换后,应用程序将使用以下 URL:
https://mytenant1.ids.mydomain.com
作为 AuthServer URL。https://mytenant1.api.mydomain.com
作为默认 URL。https://mytenant1.identity.mydomain.com
作为AbpIdentity
入点口 URL.
应用程序在每个请求中发送包含当前租户 id 的 __tenant
header.