得到User为null的问题

得到User为null的问题

老师说的feign不经网关,不是,我理解的是session不是存在redis里面了吗,向redis拿的session对象,关feign不经网关什么事

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2021-07-13 19:01:32

同学你好,获取User对象是经过Fegin的,Fegin的调用是一种Http的调用,而在网关中的请求头等重要信息是默认不会携带过来的,又由于Fegin不经过网关,从而导致获取不到用户信息,这里同学可以再回顾一遍课程

祝学习愉快~

  • 提问者 qq_精慕门6417434 #1

    他不经过网关有什么关系呢,因为像上一周那个cloud小项目,不也是可以不用feign过滤器成功返回内容吗。为什么这个又需要用过滤器拦截呢,因为那个User对象是在User模块中获取到返回回来的呀

    2021-07-13 20:21:22
  • 同学你好,调用了user服务器中的getUser方法,发起请求但是这个请求是从网关直接发出的,所以在访问user服务器时产生了新的session以及sessionId,所以用这个新的sessionId查到的session中并没有之前用户登录的信息,解决这一问题就需要把session信息以链路的形式传递下去,所以我们就给Feign加了拦截器,去请求头中把session的信息给赋值,这样就可以找到对应的用户信息了。

    祝学习愉快~


    2021-07-14 09:44:43
  • 但是session不是从redis中获取的吗,

    2021-07-14 09:56:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师