何谓单点登录系统
单点登录系统(SSO)。主要用于解决用户在使用多个系统是需要对每个系统进行登录校验这一操作痛点而产生的概念。
在开发系统时,系统会有一套完整的账户校验机制,更具cookie、session让系统识别登录账户是否符合访问条件。当不断迭代和差异化产生的新需求时,就需要开发新的系统,但是本质上用户账户的管理是相通的,只是由于每个系统相对独立,用户在实际访问过程中就需要对每个系统做登录操作,并获取对应的身份验证信息,这不仅让用户体验很差,对系统的安全性也是很大的问题。
就像吃自助餐,用户需要在每个自助餐台面(登录)都花钱买到对应台面的餐票(cookie)才能享用这个台面的食物。单点登录系统就相当于在自助餐厅门前加了一个售票处(sso认证中心),用户只需要在售票处购买一个餐票(cookie)并在售票处做好登记即可,每个台面只需要拿着用户的餐票与售票处的登记信息做对比(系统间cookie校验)即可让用户在整个餐厅内畅行无阻。
单点登录的方式
将Session同步到各系统
将用户登录成功后的用户信息写入Session并全局的系统获取Session中的用户信息实现登录校验。
token校验
将用户登录信息生成串放入token中,访问到其他系统时,请求中放入的token能解析出用户信息即可访问。
利用redis校验cookie
将用户登录生产的cookie放入redis,再返回redis的key用于访问校验,当请求中的key能在redis中找到相应的用户信息,即表示校验通过。