分享chrome sameSite单点登录解决方案

楼主
我是社区第80325位番薯,欢迎点我头像关注我哦~
Ajax 跨域单点登录-https://help.fanruan.com/finereport/doc-view-2473.html

在Ajax跨域单点登录中,由于chrome浏览器升级后,不允许跨域携带cookie,导致原先的单点登录接口调用后,尽管后台返回成功,但事实上还需要用户端还要进行二次登录。官方提供的解决方案是人工去设置chrome浏览器下去人工设置sameSite属性为disable。那这样肯定是不妥的,企业内部用户很多,不可能每个人的电脑去设置一下。
业务系统在集成帆软报表时,肯定会涉及到跨域,那我们就要变通的绕过去,把帆软报表作为一个独立的页面去访问。帆软提供的单点登录的url如下:
http://IP地址:端口/WebReport/decision/login/cross/domain?fine_username=admin&fine_password=1*/GRJ3df&validity=-1那我们第一步就想办法生成上面这样的单点登录url,这个具体可以自己想办法。第二步,在三方业务系统登录成功的页面里面,加入如下js://ssourl就是上面的单点登录的urlvar win = window.open(ssourl,"",'dialogWidth:10px; dialogHeight:10px; status:no;directories:yes;scrollbars:no;resizable:no;help:no');
setTimeout(function () {
    win.close()
},100)我们借助浏览器,通过前端去访问单点登录url,这样就不涉及到跨域的问题。缺点就是用户登陆时有个小黑框一闪而过。

分享扩散:

沙发
发表于 2021-3-10 16:35:39
方法不错的,我选择用nginx代理完美解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表