【问题标题】:Passing User info across microservices跨微服务传递用户信息
【发布时间】:2020-04-05 14:49:06
【问题描述】:

基本上,我有一个微服务 A,它通过检查凭据来验证用户,它需要将用户请求转发到另一个微服务,该微服务对请求进行进一步处理。我们使用基于会话的身份验证。一旦微服务 B 收到请求,它需要记录发起请求的用户。 这些微服务使用 RSocket 相互通信。现在,如果我需要将登录的用户信息传递给微服务 B,我可以将其作为请求的一部分发送,或者我可以创建一个 JWT 令牌并将令牌与请求一起传递。可以在服务 B 处验证令牌以获取授权和用户详细信息。最好的方法是什么?请建议是否有任何其他方式可以以更好的方式完成?

【问题讨论】:

    标签: authentication authorization microservices jwt-auth rsocket


    【解决方案1】:

    我建议在 RSocket 元数据中发送用户数据。对此,您有两种选择:

    1. 由于 RSocket 是面向连接的,如果从一个服务到另一个服务的所有流量都将由同一用户完成,您可以在连接期间通过流 0 上的元数据推送发送一次用户数据。

    2. 如果不同的请求将针对不同的用户,那么您可以在每个请求的 RSocket 请求元数据中发送用户数据。

    元数据可以按照您喜欢的任何方式进行编码。如果需要,您可以在其中放置一个 JWT 令牌,但它不一定是 JWT。您可以轻松地创建自己的对象来发送数据。

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 1970-01-01
      • 2017-04-21
      • 2018-07-15
      • 2018-11-28
      • 2014-04-26
      • 2013-04-23
      • 2018-01-03
      • 1970-01-01
      相关资源
      最近更新 更多