场景

oa是主系统,crm是子系统。子系统对接oa系统的单点,从单点界面点crm图标,跳转到crm应用。crm应用前后端分离,后端提供鉴权接口getToken(),前端调用鉴权接口,
如果鉴权成功,登录crm系统。
如果鉴权不成功,跳转到oa登录页,登录后回调到crm登录页面。

crm鉴权逻辑描述:
从cookie拿到约定的token,去oa单点校验登录。通过则返回code=0表示成功,失败code=-1。
那么跳转到oa登录页。

oa单点如果通过,会从本系统查看是否有此用户,如果有成功,如果没有,还是返回失败code=-1。 还是跳转到oa登录页。

结果出现了无限跳转的情况。

解决方案

分析排查:
仔细一分析,发现了问题所在。 当crm中没有oa的用户时(oa和crm用户单独维护,是通过定时推送来同步用户的)。
那么oa登录后,点图标跳转到crm,crm鉴权开始,token检验虽然通过,但是用户不存在,但是返回-1失败。前端看到失败,会跳转到oa登录页,让他登录。但用户实际已经登录,所以又会回调到crm登录页,这里又鉴权,发现还是失败,又会跳转到oa登录页。 依次类推,会一直跳转。

方案一:
彻底做到2方数据同步。 这个其实有点难,因为有2个一致性:
用户数据一致性(这个还好吧,只要程序没毛病,基本可以做到)
实时一致性(要看同步的策略了,例如每天推一次,那么当天新增的用户可能同步不到)

方案二:
改进接口。
这里有个细节。后台的鉴权接口返回信息太笼统,失败了就是-1,其实应该分情况。
例如单点校验失败E00001,无此用户E00002,那么前端就好判断了。
当E00001时,跳转到oa登录页。
当E00002时,提示无此用户,请先添加用户。这样就不会无限跳转了。

单点登录无限跳转的问题相关推荐

  1. springboot接入cas单点登录后跳转不到我需要跳转到页面_单点认证的一点心得

    最近项目要接入一批项目,接入必然涉及单点认证,在对接的单点认证主要分为几类,oauth .cas.还有一些其他的. 其实主要分为2类: 一类对方提供登录接口,我们做登录页面,用户输入用户名和密码,我们 ...

  2. H5页面单点登录跳回首页 http url参数转义

    在往首页跳的时候因为是单点登录进来的,url后面会带有参数,然后存入会话,所以我要拿到原本存入会话的参数放入url后面 但是返回的时候页面报错了 http://localhost:18086/h5ap ...

  3. cas 登录之后不跳转_图解JWT如何用于单点登录

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:流云诸葛http://cnblogs.com/lyzg/p/6132801.html ...

  4. 手撸SSO单点登录(五)登录验证-OA系统页面刷新或者跳转新OA系统页面

    目标  上一章节手撸SSO单点登录(四)登录验证-首次登录已经成功登陆并且跳转至OA系统,当OA系统刷新,或者OA系统打开其他菜单是怎么实现无需登陆,直接验证通过,跳转页面或者刷新页面. 视频详细讲解 ...

  5. 用户模块跳转、sso单点登录、跨域访问

    一.实现用户模块跳转 1.需求说明 说明:当用户点击登录/注册按钮时 需要跳转到指定的页面中. url地址1.:http://www.jt.com/user/register.html url地址2: ...

  6. usmssosetup 单点登录被禁用_如何解决SSO单点登录跳转异常问题

    应用出现访问异常,很大可能是由于网络设备出现故障或者设备关联验证过程中出现了问题造成的.但是在部分情况下,对系统程序的设置也会成为造成异常现象的原因所在.正如本案例所介绍的单点跳转异常情况. 3.1 ...

  7. 手撸SSO单点登录(三):统一跳转至SSO登录页

    一.目标 这一章节的目标主要是讲解第一次打开系统,无论OA系统,还是认证系统等,在未登录的情况下怎么统一跳转至SSO登录页面.client 用OA系统代替更直观 视频讲解地址https://www.b ...

  8. 本地前后端联调跳过cas sso单点登录

    很多项目集成cas单点登录系统,在本地开发联调的时候,往往会遇到单点登录的拦截,这会影响到我们正常的联调.我们客户端和服务通信的身份信息存储在浏览器cookie里面,那么处理方式非常简单.我们只要想办 ...

  9. 分布式单点登录框架XXL-SSO

    2019独角兽企业重金招聘Python工程师标准>>> <分布式单点登录框架XXL-SSO> 一.简介 1.1 概述 XXL-SSO 是一个分布式单点登录框架.只需要登录 ...

最新文章

  1. 分析智能卡的ATR格式【转】
  2. 关于c语言的fib的程序总结,C语言程序设计试卷及答案
  3. 那些年学过的Hibernate笔记
  4. 洛谷——P2077 红绿灯(解法2)
  5. 设计模式:java及spring观察者模式(有利于代码解耦)
  6. 模拟定位工具gps mock
  7. iOS之有用的分类(UsefulCategory)
  8. 第二章 数据模型 概念数据模型E-R图 设计E-R图,过程,例子 逻辑数据模型,分类
  9. 基于jQuery省市县联动插件
  10. 从传课网论公司是否要卖给资方控股
  11. 用ajax+jquery+json+css3+html5实现登录、注册、以及主页面的增删改查
  12. 汕头大学本科学生毕业论文(设计)撰写规范(2018版)
  13. ★戏子入画、一生天涯
  14. 辞旧迎新:祝您阖家幸福安康,万事如意
  15. html中微信添加好友超链接,微信给文字加链接代码分享(原来微信超链接是这样加的)...
  16. 印象笔记,石墨笔记和Effie哪个更适合影评人?
  17. linux pe无法识别硬盘,diskgenius识别不到硬盘是怎么回事?原因以及解决方法
  18. 网络层IP协议和数据链路层
  19. 汉寿计算机职业中专,汉寿县职业中等专业学校2021年招生简章
  20. 正版方舟建服务器,方舟在steam上肿么搭建服务器

热门文章

  1. 使用QuaZipFile进行加密后形成的压缩包,用WinRAR,Bandizip等可以解压出来文件,用360解压,7-zip等解压后的为空
  2. Qt5 QMediaPlayer 音乐播放器
  3. 生成模型之VAE与VQ-VAE
  4. 消息转发机制与Aspects源码解析
  5. Simulink常用模块库(Integrator/Discrete-TimeIntegrator)
  6. (转)经典广东话2010
  7. 华为最近面试后要等多久才有消息?(有经验进)
  8. [爱情智慧]女人千万别觉得嫁了没钱的男人,他们就会因为感激对你好
  9. 人生第一次心理咨询逐字稿以及分析
  10. 项目开发个人心得报告