场景:假设一个用户将自己的登录信息提交到后台,如果session保存的信息分布在多台机器上,并且不共享,那么可能导致用户的登录信息出现短暂的丢失,为什么这样讲,因为用户访问服务器中间还要经过负载均衡服务器,负载均衡采用轮询的方式转发用户的登录请求。有可能访问到的那台机器用户恰好没有往服务器提交信息,导致信息出现短暂性丢失。这时一般有两种解决方案。

一.配置session集群(也就是tomcat服务器集群),让多台服务器共享同一个session并且同步,那么用户的登录信息就不会丢失。但是随着用户数量的增加,集群的性能就会下降

建议在5台一下的场景使用。

二.搭建单点登录系统,向外提供服务接口,将session数据存储在redis中,redis中的key可以设置信息的过期时间,而且访问速度快,效率高。模拟用户登录与查询订单的流程。

1.用户向sso系统发起登录请求 2.系统跳转登录界面 3action接收用户的参数 4后台根据用户名从数据库中查密码 5.如果密码正确,生成一个token(令牌),并将用户的信息保存到redis中,设置过期时间 6返回登录成功的界面 ,将token写入cookie 7用户访问订单系统 ,请求查询订单 8从cookie中取token查询,调用sso单点登录系统的服务,根据token查询用户的信息 9 接收token,从redis中查询token的值是否存在或者是否过期,如果有效,直接返回订单信息。

sso单点登录系统是解决企业业务整合的比较流行的方案之一,用户可以一次登录,可以访问多个不停的业务系统而不需要重新登录。而且可以通过redis解决分布式环境下session共享的难题。仅代表个人的一些见解,希望有需要的一起学习共同进步!

转载于:https://www.cnblogs.com/-flq/p/9282596.html

sso单点登录系统(解决session共享)相关推荐

  1. SpringBoot+MyBatis+Redis实现SSO单点登录系统(二)

    SpringBoot+MyBatis+Redis实现SSO单点登录系统(二) 三.代码 配置文件配置数据库,redis等相关的信息. # See http://docs.spring.io/sprin ...

  2. SpringBoot+MyBatis+Redis实现SSO单点登录系统(一)

    SpringBoot+MyBatis+Redis实现SSO单点登录系统(一) 一.SSO系统概述 SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可 ...

  3. Shiro整合SSO单点登录系统

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37797991/article/ ...

  4. 互联网分布式微服务云平台规划分析--SSO单点登录系统

    介绍 鸿鹄云架构[SSO单点登录系统]为所有微服务提供统一的用户认证服务,系统本身属于微服务模式,使用JWT+Redis分布式存储方案,确保不同微服务.系统之间的安全通讯和统一用户校验.认证.在整个服 ...

  5. 手撕一套sso(单点登录)系统之原理篇1

    在手撕之前,你首先要了解一些原理,我写的案例成品可以访问zauth,语言是Java8. 目录 1.关于Http 2.用户信息怎么存?存什么?存在哪? 2.1 使用前端存储技术Storage或index ...

  6. 单点登录系统中如何共享cookie

    使用cookie的两个属性 domain-域 通过设置这个属性可以使多个web服务器共享cookie.domain属性的默认值是创建cookie的服务器的主机名.不能将一个cookie的域设置成服务器 ...

  7. SSO单点登录系统的实战运用

    通用介绍 单点登录系统,简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.任何SSO框架都需要创建统一的认 ...

  8. sso单点登录系统的理解

    单点登录有两种方式,一种是跨域,一种是不跨域. 一:在不跨域的情况下, 只需要将cookie设置为顶域状态,即可以实现cookie的共享. 二:跨域登录 用户访问app系统,app系统是需要登录的,但 ...

  9. 基于cookie的SSO单点登录系统

    利用COOKIE实现单点登录功能 近期公司要求帮一个项目实现单点登录功能,在综合考量下决定采用cookie实现,大概的流程如下图所: 转载于:https://www.cnblogs.com/bugge ...

最新文章

  1. python视频教学视频哪个好-Python入门视频哪个好?
  2. 应用更新iOS 开发:应用内实现 更新提醒
  3. 【Linux 内核】编译 Linux 内核 ② ( 解压内核源码 | 查询当前 Linux 内核版本号 | 进入并查看 linux 内核源码目录 )
  4. IPFS网络是如何运行的(p2p网络)
  5. IPFS下载安装和配置
  6. JQuery和JavaScript常用方法的一些区别
  7. 如何解决未经检查的演员表警告?
  8. Apache Flink 零基础入门(三):DataStream API 编程
  9. python马尔科夫链
  10. 周育如的音标口诀大全_一年级汉语音标口诀记忆方法
  11. 现在商业社会,跨界打劫随处可见,一家家政公司跨界疯狂赚钱模式!
  12. 解决actionBar 闪现
  13. qq音乐html5测试性格,根据你的听歌习惯测试你的性格
  14. 【项目】游戏开发期末大作业 之 基于Java的小游戏 “大鱼吃小鱼“ (代码素材齐全)
  15. CGlib、Enhancer、ProxyFactory在springboot中的实现动态代理
  16. 智能车辆路径跟踪滑膜控制+单点预瞄
  17. powershell 激活WIN10
  18. 【学习笔记】使用Tensorflow版ENet训练自己的数据集labelme生成灰度标签图片问题
  19. java,定义类(手机),调用(手机的各种方法)演示
  20. Echarts设置X轴文本换行

热门文章

  1. winfrom 如何让弹窗不影响主界面_「Win」电脑开机后不给我弹几个广告,我还不太习惯...
  2. python读取文件_一日一技:使用Python读取Excel文件
  3. python分配红包程序_Python版微信红包分配算法
  4. PS制作棱镜化多边形照片效果
  5. 从前端到“钱”端,优秀程序员要掌握哪些核心技术?
  6. ucosii 如何确定定时器的时间_全国中小学寒假时间确定,家长如何安排孩子们假期更合理?...
  7. 计算机应用技术专业毕业论文,计算机应用技术专科毕业论文范文
  8. php 地图 显示 客户位置_网站SEO优化_PHP程序网站怎么做优化 _SEO优化|SEO推广|SEO服务|上海SEO...
  9. jieba分词_wordcloud词云美化——jieba结巴中文分词(将长句拆分)
  10. 流媒体服务器NTV Media Server G3性能测试