zoukankan      html  css  js  c++  java
  • 实现单点登录功能的思路以及kafka同步数据

      单点登录以及用户数据同步思路与方案

            当公司业务分布于多个子系统时,

      同一用户在A系统注册,即可在其他所有关联系统使用,

      并支持登录A系统后,自动在其他系统登录,退出同理。

      在A平台修改通用的用户数据(比如密码),及时通知其它平台进行更新数据。

      

      每个系统有自己单独的用户表,用于各自的业务逻辑,但用户ID与主用户表相同,其他数据根据需要可以放到主用户表,也可以放到各个系统中进行同步。

      主用户表单独存储和处理,我们公司是由中台进行单独管理,即单点登录

      当我们在A系统进行单点登录时,会获取一个新的token(由中台生成),我们将它保存在A系统的用户表,

      当我们访问A系统的业务数据时,先判断用户是否登录,就是通过token字段,有token并且A系统的用户表存在该token即代表登录

      那么A系统登录后,其他系统也登录了,怎么实现?

      每次当中台生成新token时,即代表有用户使用密码登录了,此时通过Kafka发布消息,各子系统监听到消息后,自动更新最新的token到各自的用户表。

      此时,当浏览器中缓存有token,访问其他子系统时,带上该token,即视为已登录用户。

      退出同理,当然还有基础用户数据修改、以及token过期等处理。

      kafka的好处,在于将用户剥离出来,使各个系统中的用户表互不干扰。只需处理好kafka的消息队列即可,从外部看,就好像各个子系统的用户表毫无关系,但内里确实有机结合的。

  • 相关阅读:
    搞定markdown,这一篇就够了
    win32上安装mongodb解决方案
    vue移动端框架到底哪家强
    angular3哪儿去了?angular4与2兼容吗
    angular2入门,就这一篇就够了
    存储过程入门(一)。
    ymPrompt框架。(弹出框)
    c#接口
    c#抽象类和抽象方法
    c#面向对象03
  • 原文地址:https://www.cnblogs.com/lz0925/p/9051427.html
Copyright © 2011-2022 走看看