NodeJS Express Auth - 具有多个客户端数据库的多个数据库服务器

时间:2017-09-21 13:13:03

标签: node.js database authentication

我正在开展一个“非工作时间”项目的公司,该项目允许用户使用oAuth2通过NodeJS Rest API从客户端数据库请求数据(或者可能是另一种基于令牌的身份验证系统,无论什么最适合)。

一般数据结构如下所示:

- Node API Server (Handles the incoming requests)
--- oAuth 2 Users/Clients Database

- Database Server 1 (MySQL) (SRV1)
--- Client Database 1 (DBNAME1)
--- Client Database 2 (DBNAME2)
--- Client Database 3 (DBNAME3)
--- Client Database 4 (DBNAME4)

- Database Server 2 (MySQL) (SRV2)
--- Client Database 5 (DBNAME5)
--- Client Database 6 (DBNAME6)

- Database Server 3 (MySQL) (SRV3)
--- Client Database 7 (DBNAME7)

导入通知:用户需要能够链接到多个客户端数据库。 (最好使用相同的用户帐户,但使用不同的令牌(或可能是其他标识符))

我希望在开始编码所有内容之前有一个明确的目标,然后在开发过程中在墙后打墙。

问题是。我目前有一个带有客户端数据库连接的工作端点,但我似乎无法解决它如何开始使用这种方法。

我必须存储这些标识符的想法:

- User 1
--- Name, Email, Pass, ..
--- Tokens/Connections:

------ Token: SRV1-{TokenHash}
------ Database: DBNAME2
------ Scope: *

------ Token: SRV3-{TokenHash}
------ Database: DBNAME7
------ Scope: *

API端点如下所示:

api.domain.com:3000/v1/CustomerService/customers

用户将通过请求标头进行身份验证。

然后,应用程序将从令牌链接中获取客户端数据库名称,并从令牌本身的前4个字符中获取服务器。

例如,

会导致:

GET data from: Database Server 3 (SRV3) -> Client Database 7 (DBNAME7) -> Table:Customers

我查看了整个oAuth2和JWT实现,但所有内容都是针对具有多个用户的1个数据集而设计的。

是否有更有效或更好的方法来处理上述情况?我应该退出整个基于令牌的身份验证吗?

我似乎无法找到有关此内容或其他API处理此内容的任何信息。

0 个答案:

没有答案