SSO单点登录客户端对接,前后端分离篇
前后端分离情况下,想要对接单点登录会存在一个数据转发的情况,和浏览器需要保存cookie信息,遇到的项目是若浏览器没有cookie信息,就会跳转到登录进行从新登录,所以为了避免单点登录之后还会跳转到登录页面,而画了这个流程图,比较清晰的展示了单点登录在前后端分离的项目中的请求流程。
需要注意:
- http://cas.socmap.org 为单点登录服务的地址。
- 不加 /api 路径的url视为直接访问前段地址
- 前端项目可以直接访问后端接口,是因为前段项目中将后端访问接口前面加的有 /api/ 这个路径, 若url开头路径为 /api/ 的话,nginx会将请求转发给后端项目。
- 需要 单点登录系统直接访问后端接口的话,需要将service回调的地址加上/api
- 第一次登录单点登录系统后, cas服务会302跳转到发送的回调地址上,并带上ticket信息。
- 后端项目收到回调的请求后,会拿着回调中ticket的数据再去cas服务器中验证有效性。若有效则就可以生成自己系统中使用的session和cookie信息,并访问自己前段项目中的一个redirect页面,进行给浏览器中保存上用户的cookie信息。这样浏览器中就存在了自己项目中的cookie信息,可以进行正常的页面请求了。
用户第一次登录系统
-
登录验证流程增加nginx代理和前后端分离的流程,详细如下图:(请注意看跳转url)
-
同样用户退出流程分为两种情况,如下图所示:
- From: xaohuihui
- 手搓不易,记得点赞哦