在网站建设过程中经常会遇到多个系统之间的会员整合问题。就譬如OA系统有会员系统、CRM有会员系统、HR有会员系统、网站也有会员系统,这些会员系统之间会员相互独立,但是在实际应用中需要会员共享,就是实现多个系统之间一次登录。这就是所谓的单点登录。简称为 SSO(Single Sign On)。
如图所示
假如盛世阳光公司项目有四个会员系统,项目管理系统域名是(project.gonet.com.cn)、售后服务系统(sh.gonet.com.cn)、官网(www.gonet.com.cn)也有一套会员系统、官网微信账号也有一套会员系统。那么对用户来说,最好的体验就是一次登录,无感顺利登录其他系统。这就需要设计一套单点登录系统了。
那么如何设计呢?我们采用的方式就是Token的形式,具体来讲就是在会员登录的时候生成一个唯一的Ticket,在系统之间建立一个互信表,实际上这个Ticket也就是一个用户信息。
如下图所示
当用户要从盛世阳光的项目管理系统跳到售后服务系统是,售后系统进行校验,校验成功则赋予用户在售后系统中的权限,用户可以根据自己的权限进行在售后系统的操作。因为一般的session的设置都是有有效时间的,用户在售后系统中是活跃状态就需要和用户中心系统进行握手通讯,保证session的有效性。如果超过30分钟没有握手通讯,系统将清除session记录。
如下图所示
通过以上的设计和实施,就实现了若干个系统之间的单点登录,用户无感的切换与各个系统之间。