单点登录实现思路

单点登录实现思路

2015/9/22 22:35:50
通常 我们使用单点登录的场景 是多个应用 需要共享用户的基础信息和登录状态
2015/9/22 22:37:07
多个应用 需要考虑到 这样几种情况
1. 同一主域名
2. 跨域名
2015/9/22 22:41:17
我会分析单点登录的使用场景 , 场景的特性 , 实现的方法 , 遇到的问题 ,
2015/9/22 22:42:29
用户在登录之后 , 我们会对他的登录状态进行记录
2015/9/22 22:43:26
采集基础信息 (如 浏览器 , ip 访问时间) 并集合一些参数 (ticket 失效时间) , 根据相应的规则 生成ticket
这里的ticket 作为用户下次访问受保护的资源时的校验依据 (需要登录的url)
ticket 有什么特性
2015/9/22 22:44:34
时效性 , 所以这里在持久化的时候, 可以不优先选择数据库 , 而选择缓存
这里是关于ticket的部分
2015/9/22 22:45:24
针对于ticket的校验
在用户访问每一个受保护的资源的时候 , 我们都需要校验他所携带的ticket
看ticket 是否有效 , 是否过期
2015/9/22 22:46:23
校验 可以分为 客户端校验 , 和服务端校验两种方式
23:07:13
这里将单点登录系统 , 拆分成 客户端 + 服务端 两部分 , 客户端以 jar 包的形式体现 , 服务端 以后端服务形式体现
23:09:44
用户第一次登录的时候 , 生成ticket , 存入前端session (分布式用缓存), 后端进行持久化
23:10:44
将ticket 存入 cookie
校验分为两种类型 (表单和异步请求 , get请求)
23:12:31
get请求 , 可以通过客户端 的拦截器 依次比对 cookie - session cookie 后端
异步请求 , 通过前端封装 js的sdk , 统一入口 , 依次比对cookie - session cookie - 后端 中的ticket值
23:14:10
get请求 , 对于需要登录的用户 可以进行页面跳转 , 并给出对应的回跳链接
异步请求 , 在当前访问页面 , 画出一个frame , 进行登录验证
23:07:13
这里将单点登录系统 , 拆分成 客户端 + 服务端 两部分 , 客户端以 jar 包的形式体现 , 服务端 以后端服务形式体现
23:09:44
用户第一次登录的时候 , 生成ticket , 存入前端session (分布式用缓存), 后端进行持久化
23:10:44
将ticket 存入 cookie
校验分为两种类型 (表单和异步请求 , get请求)
23:12:31
get请求 , 可以通过客户端 的拦截器 依次比对 cookie - session cookie 后端
异步请求 , 通过前端封装 js的sdk , 统一入口 , 依次比对cookie - session cookie - 后端 中的ticket值
23:14:10
get请求 , 对于需要登录的用户 可以进行页面跳转 , 并给出对应的回跳链接
异步请求 , 在当前访问页面 , 画出一个frame , 进行登录验证

原文地址:https://www.cnblogs.com/gxbk629/p/4840971.html