express-gateway - 如何管理消费者的凭据
问题描述
我有一个关于使用许多微服务和Express-Gateway
. 我有 N 个微服务。其中一个微服务(我们称之为“用户配置文件”)将包含所有与用户配置文件相关的数据,例如电子邮件、用户名、注册日期、出生日期等。所以,这里有一些问题:
- 如何组织用户注册和认证?这个工作流程怎么样:
- EG 有直接暴露给外部世界的 API 端点。这些端点来自这个“用户配置文件”微服务。
- 如果用户想注册或登录,他/她会向该服务发送一个 POST 请求。此请求包含所有需要的数据。
- 为了获得一个用于所有其他请求的 JWT accessToken,这个微服务向 EG 的 Admin API 发送一个请求并创建以下内容:
- 创建用户
- 为该用户创建 jwt 凭据
- 收到 EG 的响应后,“用户配置文件”微服务根据 keyId 和 keySecret 形成 JWT 访问令牌
- 将此令牌发回给用户
- 用户现在可以在传递 Bearer accessToken 时访问所有受保护的路由
这是工作流程图。
- 我的第二个问题是——如果上面的工作流程没问题,那么每次创建用户后,都会有新创建的keySecret。我需要为
secretOrPublicKey
param 输入gateway.config.yml
什么?也许在生成 JWT accessToken 时,我需要使用某种类型的私钥,而不是keySecret
凭证创建步骤中的私钥,然后将相同的密钥放入gateway.config.yml
?
解决方案
我很抱歉迟到的答案。
您描述的流程看起来不错,这正是 Admin API 的用途。
在问题 2 上——你不需要接触secretOrPublicKey
——你设置一次,它永远是好的,不管你创建了多少用户。该参数用于对发送给客户端的 JWT 进行签名。保持原样,你应该没有任何问题。
推荐阅读
- swift - UIView 更改其大小后 UIGestureRecognizer 延迟
- javascript - Chart.JS - 无法在 Y 轴标签之间添加边距/间距
- c++ - 指针 c++“w 没有命名类型”
- javascript - HTML 表单 getElementById() 为 NULL
- css - 为什么微调器的这个 CSS 旋转变换会上下摆动?
- django - 我应该在用户更新时自动更新我的个人资料模型吗?
- sql - 超过定义的周限制的总和
- flutter - 重新访问应用程序屏幕时,Flutter GetX 控制器未调用方法
- react-admin - 如何从编辑表单中提交/保存表单
- python - models.vgg16(pretrained=True) 由于 TqdmKeyError:“未知参数:{'unit_divisor': 1024}”