温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

iframe内嵌第三方带登录页的跨域登录失效问题怎么解决

发布时间:2021-06-25 13:48:27 来源:亿速云 阅读:16229 作者:chen 栏目:编程语言

本篇内容介绍了“iframe内嵌第三方带登录页的跨域登录失效问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

最近项目需要,即在 网站A 比如 http://a.com 中 使用iframe 内嵌访问 网站B 比如 http://b.com

可是在测试的时候,发现使用 谷歌浏览器或者谷歌浏览器内核的浏览器 内嵌访问 网站B的登录页面的时候 http://b.com/login 会导致登录失败!登录不成功。 

而如果使用其他浏览器比如 火狐是可以的。

参考解决方案:

问题原因:chrome80及以上版本调整了cookie的策略不能保持,所以出现了跨域问题

解决方案:
1、使用其他浏览器,或者使用低于谷歌80版本的谷歌浏览器
2、客户端解决:如果用户要使用高于80版本谷歌浏览器,需要在自己电脑上的谷歌浏览器进行一个设置也可解决,见方法一
3、服务端解决,集成系统及BI系统均需要修改为https协议(注意:单点登录回调接口的协议不能改为https,否则涉及到证书相关验证,由于BI中并没有证书,会造成请求接口失败),见方法二将BI修改为https协议,集成系统修改为https需要自行解决

方法一:
1、打开你的谷歌浏览器,地址栏输入:chrome://flags
2、搜索:SameSite by default cookies
3、选择:disabled
4、重启浏览器

那肯定不能让 用户 配置浏览器了,也不能让用户指定用火狐浏览器。 

于是就 把 A 和 B网站都加上证书 采用 https 的方式。

其实也就是 浏览器为了安全性,禁用了  iframe 登录  session  写入 cookie的功能。

都采用证书 iframe内嵌登录还是失效

结果发现还是登录实现了 。 具体可以使用 菜鸟教程来验证

iframe内嵌第三方带登录页的跨域登录失效问题怎么解决

结果发现 登录慕课网 虽然发邮件告诉我登录成功了,其实是在页面上还是没有登录成功的。

iframe内嵌第三方带登录页的跨域登录失效问题怎么解决

iframe 内嵌跨域登录必须是 证书 + 同域名

也就是 很多百度资料都是说得不清楚,或者过时了的。

经过验证也就是 iframe 内嵌登录必须是  A网站和B网站都 加上 https 证书,且 域名是一样才可以的。

比如:  即在 网站A 比如 https://a.com/a 中 使用iframe 内嵌访问 网站B 比如 https://b.com/b   会导致 网站B登录失效

如果把 网站B域名改成  https://a.com/b  即在 网站A 比如 https://a.com/a 中 使用iframe 内嵌访问 网站B 比如 https://a.com/b      是可以的

“iframe内嵌第三方带登录页的跨域登录失效问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI