• 实现单点登录功能的思路以及kafka同步数据


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

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

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

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

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

      

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    WinCC的电子签名与审计追踪 2.0
    如何在VB脚本中Ping IP
    如何在WinCC中管理Windows账户
    配置SQL Server维护计划-定时备份
    修改SQL Server中的计算机名
    WinCC的画面使用技巧
    用VB脚本复制文件夹并跳过重复文件
    如何在WinCC的VB脚本内实现延时功能
    用vbs和ADSI管理Windows账户
    oracle ROW_NUMBER() OVER(PARTITION BY '分组' ORDER BY '排序' DESC) 用法
  • 原文地址:https://www.cnblogs.com/lz0925/p/9051427.html
Copyright © 2020-2023  润新知