使用子域中间件匹配客户端工作空间
Use subdomain middleware to match client workspace
我正在构建一个使用 Node + Express 堆栈的平台,供不同的公司使用。为了演示,我想用每家公司的名称创建子域以访问我的平台,这样我就可以 link 该公司对其数据的所有请求,而不是所有公司的数据。
一个简单的例子是 Harvest, where each of their client have a single subdomain. For example, company A uses https://companyA.harvestapp.com/ while company B uses https://companyB.harvestapp.com/。
我的第一个想法是在我的数据库中为每个公司包含一个唯一的 URL 并创建一个中间件来检查公司并将其传递给每个请求。
用Node+Express做类似的实现是不是最好的选择?
当客户端数量增加时,为每个客户端配置和管理子域可能会让人不知所措。
我的想法:
1.要求用户输入客户端id/name。或者,提供用于客户选择的下拉列表。
我不喜欢客户选择下拉菜单,因为这可能会暴露您的客户名称。我希望输入客户端 ID 没问题,再次不要使用客户端名称。
2。在单独的数据库中管理客户和用户信息。
您可以有一个单独的数据库,它保存每个客户的客户和用户列表。作为登录的一部分,您将从该数据库中获取已登录用户的客户端 ID。当用户注册时,您也应该更新此数据库。
Note: Never expose client details to end users / search engines.
我正在构建一个使用 Node + Express 堆栈的平台,供不同的公司使用。为了演示,我想用每家公司的名称创建子域以访问我的平台,这样我就可以 link 该公司对其数据的所有请求,而不是所有公司的数据。
一个简单的例子是 Harvest, where each of their client have a single subdomain. For example, company A uses https://companyA.harvestapp.com/ while company B uses https://companyB.harvestapp.com/。
我的第一个想法是在我的数据库中为每个公司包含一个唯一的 URL 并创建一个中间件来检查公司并将其传递给每个请求。
用Node+Express做类似的实现是不是最好的选择?
当客户端数量增加时,为每个客户端配置和管理子域可能会让人不知所措。
我的想法:
1.要求用户输入客户端id/name。或者,提供用于客户选择的下拉列表。
我不喜欢客户选择下拉菜单,因为这可能会暴露您的客户名称。我希望输入客户端 ID 没问题,再次不要使用客户端名称。
2。在单独的数据库中管理客户和用户信息。
您可以有一个单独的数据库,它保存每个客户的客户和用户列表。作为登录的一部分,您将从该数据库中获取已登录用户的客户端 ID。当用户注册时,您也应该更新此数据库。
Note: Never expose client details to end users / search engines.