请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于用户信息如何在多个微服务之间传递的问题

如题,我想到的一个解决方案是:
1.在通过网关的认证与授权之后,给前端返回一个经过密钥加密的JWT。
2.前端每次请求都带上这个JWT,然后通过网关转发到每个微服务。
3.每个微服务在启动的时候,会去认证服务器请求公钥,之后过来的用户请求都用这个公钥来验证JWT是否合法。也就是说多个微服务之间传递用户信息,都是通过这个JWT,只要验证JWT合法,就进行后续处理。
4.为了安全性,使用HTTPS传输JWT、JWT有效期设置得短一些、JWT Payload中不存放敏感信息、对于一些比较重要的操作,再次对用户进行认证操作。

不知道老师还知道一些其它方案吗?请老师讲解一下,谢谢老师。

正在回答

1回答

张勤一 2019-12-09 10:09:17

同学你好:

    你说的这种方式当然是可行的。但是用户信息一般不会在微服务之间传递,各个微服务都会去用户中心拿到用户信息,再做操作。跟你这里的描述差不多。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

4 回复 有任何疑惑可以回复我~
  • 提问者 LBruce #1
    老师你好。如果本次用户涉及到的微服务较多,用户信息又是每个微服务都去用户中心请求获取,那这样应该会有多次关于用户信息的网络请求吧?感觉这些网络请求是可以省掉的。
    回复 有任何疑惑可以回复我~ 2019-12-09 11:44:33
  • 张勤一 回复 提问者 LBruce #2
    如果涉及的微服务模块太多,这个微服务的设计也可能不是很好
    回复 有任何疑惑可以回复我~ 2019-12-09 11:55:30
  • 提问者 LBruce 回复 张勤一 #3
    好的,谢谢老师。
    回复 有任何疑惑可以回复我~ 2019-12-09 14:53:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信