问题标签 [express-gateway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
118 浏览

express-gateway - 如何管理消费者的凭据

我有一个关于使用许多微服务和Express-Gateway. 我有 N 个微服务。其中一个微服务(我们称之为“用户配置文件”)将包含所有与用户配置文件相关的数据,例如电子邮件、用户名、注册日期、出生日期等。所以,这里有一些问题:

  1. 如何组织用户注册和认证?这个工作流程怎么样:
    • EG 有直接暴露给外部世界的 API 端点。这些端点来自这个“用户配置文件”微服务。
    • 如果用户想注册或登录,他/她会向该服务发送一个 POST 请求。此请求包含所有需要的数据。
    • 为了获得一个用于所有其他请求的 JWT accessToken,这个微服务向 EG 的 Admin API 发送一个请求并创建以下内容:
      1. 创建用户
      2. 为该用户创建 jwt 凭据
    • 收到 EG 的响应后,“用户配置文件”微服务根据 keyId 和 keySecret 形成 JWT 访问令牌
    • 将此令牌发回给用户
    • 用户现在可以在传递 Bearer accessToken 时访问所有受保护的路由

是工作流程图。

  1. 我的第二个问题是——如果上面的工作流程没问题,那么每次创建用户后,都会有新创建的keySecret。我需要为secretOrPublicKeyparam 输入gateway.config.yml什么?也许在生成 JWT accessToken 时,我需要使用某种类型的私钥,而不是keySecret凭证创建步骤中的私钥,然后将相同的密钥放入gateway.config.yml
0 投票
1 回答
445 浏览

node.js - 在 express-gateway 中找不到模块 users.json 错误

安装 express-gateway 后,当我使用以下命令创建 API 网关时,

我收到以下错误。

我尝试删除 node_modules 文件夹并重新安装它,但问题仍然存在。

0 投票
1 回答
28 浏览

node.js - 当代理请求返回特定错误时,是否可以重新运行管道?

我正在使用 express-gateway 来对第三方服务进行身份验证和代理请求。如果我收到代理请求的特定错误,我想重新启动管道。我有可能吗?

0 投票
1 回答
255 浏览

express-gateway - Express gateway liveness or readyness

I am setting the cloud environment for my application. We are using express gateway as entry point. How to check liveness or readiness of the express gateway on linux environment? Please let me know is there any configuration or url to check the health of api gateway?

0 投票
0 回答
69 浏览

node.js - 如何配置我自己的身份验证服务器和 Express-Gateway 之间的交互?

我是微服务架构的新手。一般来说,我们有一个应用程序分解成微服务。有人建议我使用 API Gateway 作为客户端请求路由器。我选择了 Express-Gateway。这就是我想要做的:我需要当未经授权的用户发送请求时,他的请求将被重定向到授权服务。在授权服务上,将验证 SMS 代码,然后生成 JWT。该令牌将被发送到客户端并保存在 Express-Gateway 系统中。将来,Express-Gateway 将检查令牌,并在成功验证后将请求重定向到其他服务。我该如何实施这样的解决方案,或者还有其他选择吗?我只是不喜欢 Express-Gateway 的消费者管理系统,我需要自己的身份验证逻辑。

0 投票
1 回答
591 浏览

express-gateway - 如何通过快速网关 HTTPS 提供管理 API?

我尝试设置我的快速网关,以便通过快速网关自己的 HTTPS 作为 apiEndpoint / serviceEndpoint 提供管理 API。

下面是我的 gateway-config.yml

我尽可能按照文档中提到的说明进行操作。

我希望能够使用这样的管理 API:

并且同时像这样的示例通用端点:

当我这样做时,只有管理 API 按预期工作。所有其他 apiEndpoints 返回 404“无法获取 /echo”。当我使用管理员删除所有内容或仅更改主机时,其他 apiEndpoints 工作正常。

我该如何解决这个任务?

0 投票
1 回答
1030 浏览

express-gateway - 创建凭据时卡住 - 通过 package.json 的 Yargs 已弃用

我正在使用 Windows 10 并遵循“入门”教程,但在创建用户后,我无法为他创建凭据。

命令行:

例如凭证创建 -c bob -t key-auth -q

结果:

通过 package.json 配置 yargs 已弃用,将在下一个主要版本中删除,请改用 JS API。通过 package.json 配置 yargs 已弃用,将在下一个主要版本中删除,请改用 JS API。通过 package.json 配置 yargs 已弃用,将在下一个主要版本中删除,请改用 JS API。

然后我必须按 Control+C 来停止该过程。

0 投票
1 回答
114 浏览

express-gateway - 快速网关政策

我正在为我的微服务应用程序测试 EG 策略。一个要求是,每当快速网关收到请求时,我想调用特定服务,解析其结果,并根据结果决定继续进行下游调用或返回错误。这似乎是一个非常标准的要求。是否有针对此类场景的现有政策(在此处找不到),或者我是否需要编写自定义政策?谢谢

0 投票
0 回答
42 浏览

yaml - 如何在 dotenv 文件中使用 (*) 等特殊字符

我想在 dotenv (.env) 文件中使用 *,因为我的应用程序主机基于子域,例如 (*.lvh.me)。

我尝试在文件中使用 URL=/*/.lvh.me 之类的字符并使用环境,但它不起作用。

TENENT_URL=*.lvh.me

在网关

apiEndpoints:租户:主机:${TENENT_URL}

我希望它能够监听所有子域,但它似乎不起作用,例如,如果我从 example.stack.com 发送请求,它应该将请求传递给相关服务。我希望网关能够理解 * 从 dotenv 文件导入的任何方式。如果我硬编码,网关似乎可以工作,但是当我通过 dotenv 时,它会出错。

谢谢

0 投票
1 回答
1236 浏览

cors - Express Gateway CORS + apiKey 授权 401 Unauthorized

意图

CORS 配置似乎有效且有效,在 React-App 中我可以轻松访问网关。也可以通过 Postman 访问,所以 apiKey 不会导致问题。

但是,如果我使用 apiKey 添加身份验证,我会在所有浏览器中收到错误消息。在 Chrome 中:

问题

选项https://example-gateway.com/test 401(未经授权)

从源“ https://example-app.com ”访问“ https://example-gateway.com/test ”的 XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。

是什么导致了这种行为?浏览器是否没有通过 OPTIONS-CORS 请求发送所需的 apiKey 并因此被阻止?

如何解决?

代码