SSO单点登录客户端对接,前后端分离篇

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
  • 手搓不易,记得点赞哦

猜你喜欢

转载自blog.51cto.com/14612701/2539303