当前位置: 首页 > news >正文

谷粒商城实战笔记-问题记录-首页没有显示用户名-跨域session问题

文章目录

  • 一,首页无用户信息
  • 二,定位
  • 三,两个问题
    • 1,跨域名session共享

一,首页无用户信息

在这里插入图片描述
谷粒商城首页,点击超链接您好,请登录,正常情况下应该跳转到Auth模块的login页面,登录成功后,会重定向到首页,超链接您好,请登录应该替换为用户名。

但是实际开发过程中出现了这样一个问题,登录成功后,超链接您好,请登录未被替换,再次点击这个超链接,不会跳转到登录界面,说明后台认为已经登录成功,直接重定向到首页了,但是首页没有拿到用户信息。

F12查看Application信息,也没有发现sessioncookie信息。

在这里插入图片描述

二,定位

梳理登录流程,看看问题可能出现在哪个环节。

  • 首页点击超链接您好,请登录
  • 跳转到auth.gulimall.com/login.html,这里很关键,商城用户认证模块的域名和首页域名不一致
  • 认证模块完成用户验证后,将用户信息保存在session
  • auth模块的前端页面login.htmlsession信息保存在cookie中,注意是保存在域名auth.gulimall.com
  • 重定向到首页,首页的域名是gulimall.com,所以不会携带cookie信息,首页后端拿不到用户信息,无法渲染页面

解释问题原因

  • 登录功能是两个模块协同完成的,登录模块完成登录,在域名auth.gulimall.com下保存cookie
  • 用户信息保存在认证服务的session中,首页模块的前端拿不到cookie,及时拿到了cookie,也拿不到session,因为session保存在auth认证服务的内存中,没有保存在首页所在的商品服务内存中,取不到用户信息。

下图可以看到auth.gulimall.com下是有cookie保存的。

在这里插入图片描述

三,两个问题

1,跨域名session共享

父域名获取不到子域名的cookie,这个可以在后台定制cookie,把域名的cookie设置为父域名。

				Cookie cookie = new Cookie("JSESSIONID", session.getId());cookie.setPath("/");cookie.setDomain("gulimall.com");servletResponse.addCookie(cookie);

注意,cookienamedomainpath是非空的信息。

这样设置之后,在首页就能看到父域名有cookie信息了。

在这里插入图片描述

即便如此,首页在渲染时仍然拿不到用户信息,因为用户session信息保存在auth任务服务的内存中,首页所在的product服务是访问不到的。

还必须解决跨服务session共享问题。

http://www.lryc.cn/news/428173.html

相关文章:

  • 【面试宝典】redis常见面试题总结(上)
  • 数据仓库: 3- ETL过程
  • js数组变字符串
  • 日常问题笔记1
  • 位图与布隆过滤器 —— 海量数据处理
  • 二:《Python基础语法汇总》— 条件判断与循环结构
  • 【威锋网-注册安全分析报告-无验证方式导致安全隐患】
  • 01_React简介、基础入门
  • 【Java 内存区域】
  • 你是如何克服编程学习中的挫折感的?
  • 【AI应用实战】灵办AI插件集成详细指南
  • MySQL数据库连接超时问题排查报告
  • 代码随想录第三天 | 链表
  • Python编码系列—Python数据可视化:Matplotlib与Seaborn的实战应用
  • putty中修改默认窗口大小和字体、字号
  • Windows下网络编与ESP8266-WiFi通信(win32-API)
  • 【Golang】golang安装一些依赖包时总是失败
  • ubuntu如何监控Xvfb虚拟显示器
  • 小型需求管理软件盘点:8款功能强大的工具
  • Labelme的安装与使用教程
  • C#基础:数据库中使用Linq作分组处理(反射/直接分组)
  • Revite二次开发_使用WPF和WebView2制作一个访问网站的窗口
  • Java Spring Boot 连接数据库
  • Java面试八股之消息队列中推模式和拉模式分别有哪些使用场景
  • springboot jar是如何启动的
  • Android 12系统源码_屏幕设备(二)DisplayAdapter和DisplayDevice的创建
  • 常用Mysql命令
  • IDEA Debug工具
  • ARM64的汇编资源
  • 实验室安全分级分类管理系统在高校中的具体应用