跨微服务传递用户信息

时间:2019-12-12 08:49:50

标签: authentication authorization microservices jwt-auth rsocket

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

1 个答案:

答案 0 :(得分:0)

我建议在RSocket metdata中发送用户数据。涉及到以下几种选择:

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

  2. 如果针对不同用户的请求不同,则可以随每个请求一起在RSocket请求元数据中发送用户数据。

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