iframe内嵌第三方带登录页的跨域登录失效问题怎么解决(iframe,编程语言)

时间:2024-05-02 15:34:21 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

最近项目需要,即在 网站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://flags2、搜索:SameSitebydefaultcookies3、选择:disabled4、重启浏览器

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

于是就 把 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 是可以的

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:iframe内嵌第三方带登录页的跨域登录失效问题怎么解决的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Web前端中的JavaScript开发小技巧是怎样的下一篇:

9 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18