ACGavin 2020-12-08 10:41 采纳率: 100%
浏览 186
已采纳

spring cloud + 普通前端工程 登录验证之后 每次接口调用sessionId都不一样

这个项目里面使用的是zuul网关,登录信息是使用sessionId作为key放到redis的。

加了过滤之后,在测试登录功能时,发现请求到网关和springboot服务时sessionId不一样,然后就在网关login验证之前加了一个 AllFilter对所有请求将sessionId取出来放到header当中,在服务里面就不使用Request中的sessionId,而是使用过网关时的sessionId(因为要过验证,只能使用过网关时的),代码如下:

功能做好之后先是使用postman测试了几遍,登录之后无论是访问和登录功能一个服务的功能,还是其他服务的功能,都可以通过验证,也就是说在过网关时都是使用的同一个session。

在前端对接口时,发现登录之后,在其他功能调用时,总是登录验证失败,通过打印信息发现登录时的sessionId和之后其他接口调用时的sessionId都不一样,而且是每个接口调用时的sessionId都不一样,那也就是说每次都是一个新的session。

在这之前有一个跨域问题,我是在网关当中配置了CorsFilter:

在找关于session的这个问题时,看到有一些说因为跨域session不一致,我感觉应该不是这个问题(我也试了一些做法,并没有解决),弄了半天实在是不知道咋解决,有大佬知道吗,求解答

  • 写回答

7条回答 默认 最新

  • limit、T 2020-12-08 16:18
    关注

    把sessionID保存到redis或其他轻量数据库

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同