本篇內(nèi)容介紹了“iframe內(nèi)嵌第三方帶登錄頁的跨域登錄失效問題怎么解決”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的安順網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
最近項(xiàng)目需要,即在 網(wǎng)站A 比如 http://a.com 中 使用iframe 內(nèi)嵌訪問 網(wǎng)站B 比如 http://b.com
可是在測(cè)試的時(shí)候,發(fā)現(xiàn)使用 谷歌瀏覽器或者谷歌瀏覽器內(nèi)核的瀏覽器 內(nèi)嵌訪問 網(wǎng)站B的登錄頁面的時(shí)候 http://b.com/login 會(huì)導(dǎo)致登錄失??!登錄不成功。
而如果使用其他瀏覽器比如 火狐是可以的。
參考解決方案:
問題原因:chrome80及以上版本調(diào)整了cookie的策略不能保持,所以出現(xiàn)了跨域問題 解決方案: 1、使用其他瀏覽器,或者使用低于谷歌80版本的谷歌瀏覽器 2、客戶端解決:如果用戶要使用高于80版本谷歌瀏覽器,需要在自己電腦上的谷歌瀏覽器進(jìn)行一個(gè)設(shè)置也可解決,見方法一 3、服務(wù)端解決,集成系統(tǒng)及BI系統(tǒng)均需要修改為https協(xié)議(注意:單點(diǎn)登錄回調(diào)接口的協(xié)議不能改為https,否則涉及到證書相關(guān)驗(yàn)證,由于BI中并沒有證書,會(huì)造成請(qǐng)求接口失?。?,見方法二將BI修改為https協(xié)議,集成系統(tǒng)修改為https需要自行解決 方法一: 1、打開你的谷歌瀏覽器,地址欄輸入:chrome://flags 2、搜索:SameSite by default cookies 3、選擇:disabled 4、重啟瀏覽器
那肯定不能讓 用戶 配置瀏覽器了,也不能讓用戶指定用火狐瀏覽器。
于是就 把 A 和 B網(wǎng)站都加上證書 采用 https 的方式。
其實(shí)也就是 瀏覽器為了安全性,禁用了 iframe 登錄 session 寫入 cookie的功能。
結(jié)果發(fā)現(xiàn)還是登錄實(shí)現(xiàn)了 。 具體可以使用 菜鳥教程來驗(yàn)證
結(jié)果發(fā)現(xiàn) 登錄慕課網(wǎng) 雖然發(fā)郵件告訴我登錄成功了,其實(shí)是在頁面上還是沒有登錄成功的。
也就是 很多百度資料都是說得不清楚,或者過時(shí)了的。
經(jīng)過驗(yàn)證也就是 iframe 內(nèi)嵌登錄必須是 A網(wǎng)站和B網(wǎng)站都 加上 https 證書,且 域名是一樣才可以的。
比如: 即在 網(wǎng)站A 比如 https://a.com/a 中 使用iframe 內(nèi)嵌訪問 網(wǎng)站B 比如 https://b.com/b 會(huì)導(dǎo)致 網(wǎng)站B登錄失效
如果把 網(wǎng)站B域名改成 https://a.com/b 即在 網(wǎng)站A 比如 https://a.com/a 中 使用iframe 內(nèi)嵌訪問 網(wǎng)站B 比如 https://a.com/b 是可以的
“iframe內(nèi)嵌第三方帶登錄頁的跨域登錄失效問題怎么解決”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!