使用子域中间件匹配客户端工作区



我正在使用Node + Express堆栈构建一个平台,该平台将被不同的公司使用。为了演示,我想使用每个公司的名称创建子域,以访问我的平台,以便我可以将来自该公司的所有请求链接到其数据,而不是来自所有公司的数据。

一个简单的例子是Harvest,其中每个客户都有一个子域。例如,公司 A 使用 https://companyA.harvestapp.com/,而公司 B 使用 https://companyB.harvestapp.com/。

我的第一个想法是在我的数据库中为每个公司包含一个唯一的URL,并创建一个中间件来检查公司并将其传递给每个请求。

使用 Node + Express 进行类似的实现是最佳选择吗?

当客户端数量增加时,为每个客户端配置和管理子域可能会让人不知所措。

我的想法:

1. 要求用户输入客户端 ID/名称。或者,显示一个下拉列表供客户端选择。

我不喜欢客户端选择下拉列表,因为这可能会暴露您的客户端名称。我希望输入客户端 ID 没问题,再次不要使用客户端名称。

2. 在单独的数据库中管理客户和用户信息。

您可以有一个单独的数据库,该数据库保留每个客户端的客户端和用户列表。作为登录的一部分,您将从此数据库中获取登录用户的客户端 ID。注册用户后,还应更新此数据库。

注意:切勿向最终用户/搜索引擎公开客户端详细信息。

最新更新