news 2026/4/27 9:08:15

sa-token学习(2)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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库

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 9:07:23

VSCode + Pixel Script Temple:Codex式代码辅助图像生成工作流

VSCode Pixel Script Temple:Codex式代码辅助图像生成工作流 1. 引言:当代码编辑遇上AI图像生成 想象一下这样的场景:你在VSCode里写代码时,突然需要一张插图来辅助说明某个概念。传统做法是打开设计软件手动制作,或…

作者头像 李华
网站建设 2026/4/11 10:03:56

优化Elasticsearch性能:高效清理索引与释放资源实践

1. 当Elasticsearch开始"罢工":内存与磁盘告急的典型症状 那天早上刚到公司,就收到运维同事的紧急消息:"Kibana连不上了!"打开浏览器一看,果然看到那个熟悉的报错提示:"Cannot co…

作者头像 李华
网站建设 2026/4/11 10:03:56

快速搭建语音合成服务:Sambert开箱即用镜像,一键部署中文TTS

快速搭建语音合成服务:Sambert开箱即用镜像,一键部署中文TTS 1. 为什么选择Sambert语音合成镜像 语音合成技术正在快速改变我们与机器交互的方式。无论是智能客服、有声读物还是导航播报,高质量的语音输出都能显著提升用户体验。然而&#…

作者头像 李华
网站建设 2026/4/11 10:03:32

VulnHub新手必看:BadStore_123靶机渗透测试实战(附详细步骤)

VulnHub新手实战:BadStore_123靶机渗透测试全流程拆解 第一次接触VulnHub靶机时,很多人会被各种专业术语和操作步骤搞得晕头转向。今天我们就以经典的BadStore_123靶机为例,手把手带你走完从环境搭建到权限提升的全过程。不同于那些只给命令不…

作者头像 李华
网站建设 2026/4/11 10:03:02

如何用Office Custom UI Editor打造你的专属Office工作台

如何用Office Custom UI Editor打造你的专属Office工作台 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor 想象一下&…

作者头像 李华
网站建设 2026/4/11 10:02:10

BarrageGrab技术解析:全平台直播弹幕采集架构设计与实现机制

BarrageGrab技术解析:全平台直播弹幕采集架构设计与实现机制 【免费下载链接】BarrageGrab 抖音快手bilibili直播弹幕wss直连,非系统代理方式,无需多开浏览器窗口 项目地址: https://gitcode.com/gh_mirrors/ba/BarrageGrab 在当前直播…

作者头像 李华