2

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

4

1 回答 1

0

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

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

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

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

于 2019-12-16T00:42:50.677 回答