Nestjs 将Fusionauth与Express Gateway集成

Nestjs 将Fusionauth与Express Gateway集成,nestjs,express-gateway,fusionauth,Nestjs,Express Gateway,Fusionauth,我想实现一个小型的微服务基础设施,将应用程序业务逻辑域与用户身份验证和api密钥管理的繁琐任务分离开来 在我的场景中,我有一些属于某些组织的注册用户。注册用户可以通过角色等方式读取其组织的数据,他们还可以使用api密钥身份验证来读取和写入数据 预算很低,比如说零,因为这是目前的一个概念。因此,没有像AWS、Azure、Auth0这样酷的付费服务。我也希望它能和Docker一起在本地集装箱上运行。 业务逻辑的首选语言是TypeScript/JavaScript,尽管我认为这是一种语言不可知的场景

我想实现一个小型的微服务基础设施,将应用程序业务逻辑域与用户身份验证和api密钥管理的繁琐任务分离开来

在我的场景中,我有一些属于某些组织的注册用户。注册用户可以通过角色等方式读取其组织的数据,他们还可以使用api密钥身份验证来读取和写入数据

预算很低,比如说零,因为这是目前的一个概念。因此,没有像AWS、Azure、Auth0这样酷的付费服务。我也希望它能和Docker一起在本地集装箱上运行。 业务逻辑的首选语言是TypeScript/JavaScript,尽管我认为这是一种语言不可知的场景

所以我的想法是使用:

对于用户管理,由于它提供了一个整洁的UI和所有用于管理用户数据CIAM的内容,并支持许多身份验证策略OAuth2、JWT,…,定义了用户、应用程序、角色等,但不处理每个应用程序的api密钥或路由,因此它不是api网关。 用于api密钥身份验证、路由和访问已使用的服务,但绕过其用户和应用程序管理系统,我觉得这里不需要这些 或用于业务逻辑服务的其他web框架,例如在主应用程序数据库中插入和查询数据 我希望FusionAuth和Express Gateway一起工作,但我不清楚是否需要实现自定义的Express Gateway插件,例如使用jwt

一切都将在处理https的反向代理nginx后面工作


我想听听一些建议,例如,这个场景是否正确,这些技术是否能够很好地协同工作,是否有人经历过类似的场景,或者这个场景是否有更好的替代方案。

我使用的是React和完整的Express软件包,但您可以看到我在我链接的repo中开始的内容。还没有实现所有功能,但您可以看到我如何通过JWT和刷新令牌实现登录,以及如何验证对页面的访问。在我的应用程序中,前端请求Express以确定对页面的访问,因此它与您通常看到的略有不同。这确实增加了一些加载时间,因为它涉及两个HTTPS请求或本地主机,如代码库示例中所示。它可能不是你想要的,但它可能会给你一些想法


嗨,谢谢分享。我看了一下代码,是的,这和我要求的不太一样,尽管我可以从中学到一些有趣的想法。为什么要实现fusionauth api接口而不使用其官方节点客户端?我试过了,在处理应用程序等方面看起来很不错。我使用OAuth2验证代码流制作了一个与您类似的示例。当我回到我的电脑后,我会尝试发布它并更新这篇文章。但它忽略了jwt和刷新令牌