首页 > 解决方案 > 如何管理消费者的凭据

问题描述

我有一个关于使用许多微服务和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

标签: express-gateway

解决方案


我很抱歉迟到的答案。

您描述的流程看起来不错,这正是 Admin API 的用途。

在问题 2 上——你不需要接触secretOrPublicKey——你设置一次,它永远是好的,不管你创建了多少用户。该参数用于对发送给客户端的 JWT 进行签名。保持原样,你应该没有任何问题。


推荐阅读