序号 | 问题描述 | 地址 |
---|---|---|
1.0 | 政企通PC端单点登录V1.0 | 点击查看 |
一、政企通PC端单点登录V2.0
序号 | 问题描述 | 地址 |
---|---|---|
1.0 | 政企通PC端单点登录V2.0 | 点击查看 |
1.0 政企通PC端单点登录V2.0
1.0.1 单点登录1.0存在的问题
单点登出的1.0存在以下问题:
- 无法进行单点登出
- 单点登录无法保证各种开发框架登录状态的一致性
- 目前的集成方式还不够简单
1.0.2 单点登录2.0
针对上述问题,政企通PC端单点登录2.0解决了以上的问题
- 支持任意微应用单点登录及登录
- 任意开发框架及部署domain可以保证登陆状态的一致性
- 只需要简单几步就能集成
1.0.3 原理介绍
1.0.3.1 单点登录
SPA单页面的应用流程:
- step1 浏览器访问前端客户端
- step2 前端项目查看本地localstorge中是否存在jwt-token
- step3 无jwt-token采用oauth2简易模式跳转至认证中心
- step4 跳转到sso-server,查看本地的cookies是否存在认证的凭证(用户id加密的jwt数据)
- step5 不存在或者过期跳转登录页面进行登录,登录成功保存加密后的凭证(用户id加密的jwt数据)
- step6 携带jwt-token返回客户端
- step7 客户端校验jwt-token有效性,保证是服务端颁发并没有篡改
- step8 校验通过本地localstorge保存jwt-token,并且把前端登出地址记录只公共的cross-domain服务中
- step9 返回浏览器
后端应用流程:
- step1 浏览器访问后端的客户端
- step2 后端的项目查看本地的cookies中是否存在jwt-token
- step3 无jwt-token采用oauth2-code模式跳转至认证中心
- step4 跳转到sso-server,查看本地的cookies是否存在认证的凭证(用户id加密的jwt数据)
- step5 不存在或者过期跳转登录页进行登录,登录成功保存加密后的凭证(用户id加密的jwt数据),后端这边存储该用户下的登出地址
- step6 携带jwt-token返回客户端
- step7 客户端校验jwt-token有效性,保证是服务端颁发并没有篡改
- step8 返回浏览器
1.0.3.1 单点登出
SPA单页面的应用流程:
- step1 浏览器访问前端客户端
- step2 前端项目进行登出,清除本地的localstorge,并且访问sso-server的logout
- step3 sso-server清除本地的cookies
- step4 sso-server访问通知cross-domain,cross-domain分别访问前端项目的logout路由,各前端项目清除本地的localstorge
后端应用流程:
- step1 浏览器访问后端的客户端
- step2 后端项目进行登出,清除本地的cookies,并且访问sso-server的logout
- step3 sso-server清除本地的cookies,并且读取本地所有注册的后端项目的地址(可以是指定地址,也可以是带指定参数),进行http访问
- step4 各后端客户端filter处理这个访问,清除后端项目本地的cookies