基于Session共享的单点登录或通行证系统方案
来源:互联网 发布:服务器地址、远程端口 编辑:程序博客网 时间:2024/05/16 19:16
本文主要描述如何基于Session共享来实现单点登录。
假设有两个应用www.example.com, passport.example.com。本文以SpringSession和Redis来实现相关功能。
用户访问passport.example.com,输入用户名和密码认证成功后,在服务端建立会话,SESSIONID以cookie形式保存在根域example.com,用户访问www.example.com可以读取到SESSIONID,服务端根据SESSIONID从会话中读取相关认证信息是否已存在,如已存在说明认证成功。这是一个简单的文字描述,下面贴一下截图可以更形象的说明整个过程。
用户访问passport.example.com, 这个时候用户尚未登录
用户访问passport.example.com/login,假设登录成功
用户登录成功后访问passport.example.com
用户访问www.example.com
可以看到虽然跨域了,但是sessionid相同,这是实现不同应用单点登录的必须条件。
下面看一下redis里面的存储情况。
以sessionid为key的value是一种hash结构。
通过hget命令可以看到保存在会话中的user和account数据。
源代码
https://github.com/chenhaifeng2016/SpringSessionPassport
本文和代码只是简单介绍了原理,开发一个健壮的单点登录系统还有很多工作要做,这里只是简单介绍一下原理起到一个抛砖引玉的作 用。
0 0
- 基于Session共享的单点登录或通行证系统方案
- 基于JSON Web Tokens的单点登录(SSO)或通行证(Passport)系统方案
- 单点登录三个方法及原理:共享Session、基于OpenId的单点登录、基于Cookie的OpenId存储方案
- 单点登录三个方法及原理:共享Session、基于OpenId的单点登录、基于Cookie的OpenId存储方案
- 网站通行证方案-单点登录SSO
- 单点登录 Tomcat7集群共享Session 基于redis实现统一管理
- 基于Flask session机制的单点登录
- 基于session简单的实现单点登录
- sso单点登录系统(解决session共享)
- 网站用户单点登录系统解决方案-跨域通行证
- 单点登录(SSO)的实现—通行证的基本原理
- 单点登录(SSO)的实现---通行证的基本原理
- 单点登录(SSO)的实现---通行证的基本原理
- 单点登录(SSO)的实现—通行证的基本原理
- 单点登录(SSO)的实现—通行证的基本原理
- 单点登录(SSO)的实现—通行证的基本原理
- 使用Memcache实现Session共享(单点登录)的原理
- session共享和单点登录 springboot的实践和思考
- 222. Count Complete Tree Nodes | 完全二叉树的节点数
- webpack+ES6+less开发环境搭建
- ZOj 3950 How Many Nines (日起模拟,打表,预处理)
- WP 4 i春秋_春秋争霸
- 基础知识—表达式与语句-语句
- 基于Session共享的单点登录或通行证系统方案
- Asp.Net DataList
- 【面试题】合并两个排序的链表
- 【Keepalived】——双机热备
- 增强学习中的on-policy和off-policy的区别
- sdut 3869 购物车
- java中Byte类的源码解析
- Javascript面向对象(四)——函数原型
- 如何去除使用inline-block之后的间距(一)?