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 , 进行登陆验证数据库