如何管理消费者的凭据
How to manage the credentials of the consumers
我有一个关于许多微服务和 Express-Gateway
的用户身份验证方式的一般性问题。
我有 N 个微服务。其中一个微服务(我们称之为 "User Profiles")将包含所有与用户配置文件相关的数据,例如电子邮件、用户名、注册日期、出生日期等。因此,这里有问题:
- 如何组织用户注册和认证?这个工作流程怎么样:
- EG 有 API 个直接暴露于外部世界的端点。这些端点来自此 "User Profiles" 微服务。
- 如果用户想要注册或登录,he/she 向该服务发送 POST 请求。此请求包含所有需要的数据。
- 为了获得 JWT accessToken 然后用于所有其他请求,此微服务向 EG 的管理员 API 发送请求并创建以下内容:
- 创建用户
- 为此用户创建 jwt 凭据
- 收到来自 EG 的响应后,"User Profiles" 微服务根据 keyId 和 keySecret
形成 JWT 访问令牌
- 将此令牌发回给用户
- 用户现在可以通过 Bearer accessToken 访问所有受保护的路由
Here是流程图。
- 我的第二个问题是——如果上面的流程没问题,那么每次创建用户后,都会有新创建的keySecret。我需要为
gateway.config.yml
中的 secretOrPublicKey
参数添加什么?也许在生成 JWT accessToken 时,我需要使用某种类型的私钥而不是凭证创建步骤中的 keySecret
,然后将完全相同的密钥放入 gateway.config.yml
?
很抱歉回答晚了。
您描述的流程看起来不错,这正是管理员 API 的用途。
关于问题 2 — 您无需触摸 secretOrPublicKey
— 您设置一次并且永远有效,无论您创建的用户数量如何。该参数用于对发送到客户端的 JWT 进行签名。保持原样,你应该没有任何问题。
我有一个关于许多微服务和 Express-Gateway
的用户身份验证方式的一般性问题。
我有 N 个微服务。其中一个微服务(我们称之为 "User Profiles")将包含所有与用户配置文件相关的数据,例如电子邮件、用户名、注册日期、出生日期等。因此,这里有问题:
- 如何组织用户注册和认证?这个工作流程怎么样:
- EG 有 API 个直接暴露于外部世界的端点。这些端点来自此 "User Profiles" 微服务。
- 如果用户想要注册或登录,he/she 向该服务发送 POST 请求。此请求包含所有需要的数据。
- 为了获得 JWT accessToken 然后用于所有其他请求,此微服务向 EG 的管理员 API 发送请求并创建以下内容:
- 创建用户
- 为此用户创建 jwt 凭据
- 收到来自 EG 的响应后,"User Profiles" 微服务根据 keyId 和 keySecret 形成 JWT 访问令牌
- 将此令牌发回给用户
- 用户现在可以通过 Bearer accessToken 访问所有受保护的路由
Here是流程图。
- 我的第二个问题是——如果上面的流程没问题,那么每次创建用户后,都会有新创建的keySecret。我需要为
gateway.config.yml
中的secretOrPublicKey
参数添加什么?也许在生成 JWT accessToken 时,我需要使用某种类型的私钥而不是凭证创建步骤中的keySecret
,然后将完全相同的密钥放入gateway.config.yml
?
很抱歉回答晚了。
您描述的流程看起来不错,这正是管理员 API 的用途。
关于问题 2 — 您无需触摸 secretOrPublicKey
— 您设置一次并且永远有效,无论您创建的用户数量如何。该参数用于对发送到客户端的 JWT 进行签名。保持原样,你应该没有任何问题。