敌军bug 2022-11-30 10:45 采纳率: 0%
浏览 20

在JWT基础做单点登录

原有的多个系统使用的JWT登录,各个系统的jwt内容还不一样,怎么做多个系统的单点登录
  • 写回答

1条回答 默认 最新

  • dp_shiyu 2022-11-30 12:04
    关注

    跟进您当前的需求分析,我理解为当前有多个系统均采用了JWT登录,但其携带数据的签证信息不一致,而需要实现多个系统的单点登录。
    单点登录的签证应当被其它的应用服务所承认,并且JWT具有私钥和不同的携带业务信息,首先,你得确定一个签署通道,为您的业务系统建立一个统一的签证通道,并提供统一服务确认签证是否有效并反馈携带信息(当然,这没有把JWT的优势体现出来)。

    如果JWT签证信息并不影响业务,那么设置一个主服务,统一处理登录之后的签证并设定对应的缓存(redis)等,这种模式下JWT的无状态也显得挺无力的,当其他应用携带签证访问时,可以到统一服务里面调取,调取之后亦可以设置一个缓存,免得每次都得调取。

    上面这种还有一种解决方式,那就是拿每个独立子服务的签证去统一服务换统一签证(统一签证因为可以换取源签证),这个统一的签证是所有子服务所认可的,有点类似与 accessToken 和 freshToken 的赶脚。这种修改对源业务逻辑影响不大。

    如 内网穿透 兄 提到的 使用三方SSO服务也是可行的。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月30日

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等