微服务API网关设计

时间:2019-06-13 09:06:13

标签: node.js api microservices aws-api-gateway

我在微服务中的REST API设计上遇到了一些困难。 所有服务均使用javascript编写。

能否为我提供支持jwt授权和websocket的api网关的最佳解决方案?

我有以下情况:

  1. 主要前端-反应(仪表板,登录)
  2. 主要后端-nodejs
  3. Service1前端-反应
  4. Service1后端-nodejs
  5. Service2前端-反应
  6. Service2后端-nodejs

我正在研究KONG API网关。如果用户登录在主前端,我需要实现,他可以访问service1和service2,如果未登录,则将用户重定向到主前端。

2 个答案:

答案 0 :(得分:0)

对于简单的情况,您可以基于Express和Plugins(socket.io + jwt)开发自己的解决方案。 其他可能适合您的方案的是像这样的https://www.apollographql.com/docs/apollo-server/

答案 1 :(得分:0)

如果使用kong api网关,则可以使用多重身份验证解决问题

如果您使用jwt授权,则可以在jwt插件设置中找到匿名字段

可以通过以下方式解决

  1. 创建匿名消费者
  2. 在jwt配置中的匿名字段中填写您创建的消费者ID(例如xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
  3. 将jwt插件应用于所有服务和路由器
  4. 如果您不使用jwt令牌进行请求,则可以在请求标头元数据中找到HTTP_X_ANONYMOUS_CONSUMER=true
  5. 因此您可以在所有服务中检查用户或匿名用户

我认为以下链接可以帮助您 https://docs.konghq.com/0.14.x/auth/