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

sa-token学习(2)

官方文档地址:sa-token

sa-token学习(1)

cookie & session & localStorage & sessionStorage

session共享原理

文章目录

  • 单点登录
    • 单点登录的3种模式
      • SSO模式一 共享Cookie同步会话
      • SSO模式二 URL重定向传播会话
      • SSO模式三 Http请求获取会话

单点登录

单点登录的3种模式

SSO模式一 共享Cookie同步会话

同域、同redis

解决会话不能共享的方法
1、使用 共享Cookie 来解决 Token 共享问题。
2、使用 Redis 来解决 Session 共享问题。

hosts作如下配置:

127.0.0.1sso.stp.com127.0.0.1s1.stp.com127.0.0.1s2.stp.com127.0.0.1s3.stp.com

过程:
1、用户访问:http://s1.stp.com:9001/,但是由于未登录,所以页面不会显示用户信息,并且页面会显示1个用于登录的a标签,此a标签指向http://sso.stp.com:9000/sso/auth?mode=simple&client=sso-client1&redirect=http%3A%2F%2Fs1.stp.com%3A9001%2F,当点击此a标签时就会将地址栏跳转到http://sso.stp.com:9000/sso/auth?mode=simple&client=sso-client1&redirect=http%3A%2F%2Fs1.stp.com%3A9001%2F,由于未登录,所以此时会返回1个单点登录的页面

2、当在单点登录的页面输入sa/123456发起ajax登录请求,登录成功后,就会得到set-cookie的头,然后再刷新当前页面请求http://sso.stp.com:9000/sso/auth?mode=simple&client=sso-client1&redirect=http%3A%2F%2Fs1.stp.com%3A9001%2F,由于此时登录了(通过携带cookie),此时服务端返回302就让客户端重定向到redirect指向的地址http://s1.stp.com:9001/

3、客户端重定向到redirect指向的地址后,由于之前单点登录页面写的cookie与当前应用的页面在同1个主域名下,所以会携带此cookie,并且又由于后台共享redis,所以就能拿到用户信息了

4、其它应用点击登录http://sso.stp.com:9000/sso/auth?mode=simple&client=sso-client1&redirect=http%3A%2F%2Fs2.stp.com%3A9001%2F",就会携带单点登录成功所写入的cookie,因此也会走第2步中的服务端返回302让客户端重定向到redirect指向的地址http://s2.stp.com:9001/,然后同样走第3步,携带此cookie,又由于后台共享redis,所以就能拿到用户信息了

SSO模式二 URL重定向传播会话

不同域、同redis

多个系统之间为什么无法同步登录状态?
1、前端的Token无法在多个系统下共享。
2、后端的Session无法在多个系统间共享。

在跨域模式下,意味着 “共享Cookie方案” 的失效,我们必须采用一种新的方案来传递Token

hosts作如下配置:

127.0.0.1sa-sso-server.com127.0.0.1sa-sso-client1.com127.0.0.1sa-sso-client2.com127.0.0.1sa-sso-client3.com

过程:
1、用户访问:http://sa-sso-client1.com:9002/,但是由于未登录,所以页面不会显示用户信息,并且页面会显示1个用于登录的a标签,此a标签指向/sso/login?back=/,当点击此a标签时就会将地址栏跳转到http://sa-sso-client1.com:9002/sso/login?back=/,由于在当前应用未登录,服务器返回302状态码,让客户端重定向到http://sa-sso-server.com:9000/sso/auth?client=sso-client2&redirect=http://sa-sso-client1.com:9002/sso/login?back=%2F,由于在sso服务器未登录,所以此时会返回1个单点登录的页面

2、当在单点登录的页面输入sa/123456发起ajax登录请求,登录成功后,就会得到set-cookie的头(但是此cookie的头仅在sso服务器可用),然后刷新当前页面请求http://sa-sso-server.com:9000/sso/auth?client=sso-client2&redirect=http://sa-sso-client1.com:9002/sso/login?back=%2F,由于此时登录了(通过携带cookie),此时服务器返回302就让客户端重定向到redirect指向的地址http://sa-sso-client1.com:9002/sso/login?back=%2F&ticket=rPe6CdXbVWqNnFm2PFq3MneHBsc5eGaA8BOWv5WL5yj31oZnpu3te3KeUCm6HBdh,并注意到在后面还拼接上了ticket票据

3、客户端重定向到redirect指向的地址,并在url后拼接上了ticket票据,此时,应用端的后台服务就可以拿到此票据向sso服务器校验此ticket,若校验ticket成功,服务端返回302,让客户端重定向到http://sa-sso-client1.com:9002/,并设置当前应用端的set-cookie的头。此时,客户端就可重定向到之前访问的地址。

4、其它应用点击/sso/login?back=/,由于未登录,服务端就会返回302,让客户端重定向到http://sa-sso-server.com:9000/sso/auth?client=sso-client2&redirect=http://sa-sso-client2.com:9002/sso/login?back=%2F,客户端地址栏重定向之后,发起请求,由于之前已经登录过了sso服务器(通过sso服务器的cookie),服务端就返回302,直接让客户端重定向到http://sa-sso-client2.com:9002/sso/login?back=%2F&ticket=nfX1uHbgnGKYKT3XoFbdhB8ofOTMrY9xMvai0xfSBG4otKv2VzlffMXLrWpa8uwK,并且携带了票据。此后,与步骤3相同

SSO模式三 Http请求获取会话

不同域、不同redis

过程与模式二相同,不同点在于模式三中的应用服务器和sso服务器不共享同1个redis库

http://www.jsqmd.com/news/622896/

相关文章:

  • 分析灶福星家用猛火灶,上海北京等地用户反馈怎么样? - myqiye
  • PP-DocLayoutV3在金融文档处理中的创新应用:财报表格区域自动裁剪与结构化提取
  • AIOPS运维学习计划第1周时间安排
  • 嵌入式c语言——关键字5
  • Hyperf方案 飞书机器人智能客服= 基于 Hyperf + 飞书机器人事件订阅,实现接收用户消息 → 调用 Claude/GPT → 回复的完整链路
  • SAP BAPI批量处理MD61/MD62计划独立需求的实战解析
  • 终极Windows与Office激活指南:5分钟完成智能激活的完整解决方案
  • 共话2026年AI搜索优化,津胜网络助力企业提升排名哪家强 - 工业设备
  • 2026.4.09总结
  • Spring AI实战:基于DeepSeek与Milvus构建企业级智能问答系统的RAG架构解析
  • 如何快速掌握虚拟机检测工具VMDE:面向初学者的完整指南
  • LaTeX中二重闭合积分的完美呈现:esint宏包实战指南
  • 再也不担心论文!Nano-Banana Pro 论文绘图最全教程出书了!
  • 如何用LRC Maker零基础制作专业歌词文件:从音频到精准时间轴的完整指南
  • 避坑指南:为什么你的Pyside6 QMediaPlayer播不了视频?我总结了3种替代方案
  • 如何用GraphvizOnline在5分钟内创建专业流程图:终极免费可视化工具指南
  • 终极指南:如何用EldenRingFpsUnlockAndMore解锁《艾尔登法环》帧率限制和优化游戏体验
  • 一个公司 OPC 必备的 10 个 Skill
  • 2026年AI搜索优化品牌企业推荐,津胜网络实力出众 - mypinpai
  • 通义千问3-VL-Reranker-8B实战:快速搭建多模态检索排序服务
  • Qwen3.5-9B-AWQ-4bit辅助MATLAB科学计算:算法解释与代码转换
  • 讲讲西北靠谱的阳光板供应厂家,选购要点有哪些 - 工业品网
  • 浅谈:给导航栏添加悬浮背景变化/固定顶部效果
  • 5分钟掌握SD-PPP:让Photoshop变身AI图像生成工作站的终极指南
  • Spring Boot 4.0 Agent就绪架构到底多快?实测对比Spring Boot 3.3:冷启动缩短68%,GC暂停下降92%
  • 组合专机-基于PROE平台的立式双轴缸孔半精镗机床总体及刀具设计
  • Agent Skills:AI 正在学会自己进化,这意味着什么?
  • ClawdBot惊艳效果:模糊车牌图片→OCR识别→中英双语翻译+校验
  • 别再只会用imfilter了!用MATLAB玩转频域滤波:从理想、高斯到巴特沃斯,一次搞定图像平滑与锐化
  • 盒马鲜生购物卡变现秘诀 - 团团收购物卡回收