您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“iframe內(nèi)嵌第三方帶登錄頁(yè)的跨域登錄失效問(wèn)題怎么解決”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
最近項(xiàng)目需要,即在 網(wǎng)站A 比如 http://a.com 中 使用iframe 內(nèi)嵌訪問(wèn) 網(wǎng)站B 比如 http://b.com
可是在測(cè)試的時(shí)候,發(fā)現(xiàn)使用 谷歌瀏覽器或者谷歌瀏覽器內(nèi)核的瀏覽器 內(nèi)嵌訪問(wèn) 網(wǎng)站B的登錄頁(yè)面的時(shí)候 http://b.com/login 會(huì)導(dǎo)致登錄失??!登錄不成功。
而如果使用其他瀏覽器比如 火狐是可以的。
參考解決方案:
問(wèn)題原因:chrome80及以上版本調(diào)整了cookie的策略不能保持,所以出現(xiàn)了跨域問(wèn)題 解決方案: 1、使用其他瀏覽器,或者使用低于谷歌80版本的谷歌瀏覽器 2、客戶端解決:如果用戶要使用高于80版本谷歌瀏覽器,需要在自己電腦上的谷歌瀏覽器進(jìn)行一個(gè)設(shè)置也可解決,見(jiàn)方法一 3、服務(wù)端解決,集成系統(tǒng)及BI系統(tǒng)均需要修改為https協(xié)議(注意:?jiǎn)吸c(diǎn)登錄回調(diào)接口的協(xié)議不能改為https,否則涉及到證書相關(guān)驗(yàn)證,由于BI中并沒(méi)有證書,會(huì)造成請(qǐng)求接口失敗),見(jiàn)方法二將BI修改為https協(xié)議,集成系統(tǒng)修改為https需要自行解決 方法一: 1、打開(kāi)你的谷歌瀏覽器,地址欄輸入: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)了 。 具體可以使用 菜鳥(niǎo)教程來(lái)驗(yàn)證
結(jié)果發(fā)現(xiàn) 登錄慕課網(wǎng) 雖然發(fā)郵件告訴我登錄成功了,其實(shí)是在頁(yè)面上還是沒(méi)有登錄成功的。
也就是 很多百度資料都是說(shuō)得不清楚,或者過(guò)時(shí)了的。
經(jīng)過(guò)驗(yàn)證也就是 iframe 內(nèi)嵌登錄必須是 A網(wǎng)站和B網(wǎng)站都 加上 https 證書,且 域名是一樣才可以的。
比如: 即在 網(wǎng)站A 比如 https://a.com/a 中 使用iframe 內(nèi)嵌訪問(wèn) 網(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èn) 網(wǎng)站B 比如 https://a.com/b 是可以的
“iframe內(nèi)嵌第三方帶登錄頁(yè)的跨域登錄失效問(wèn)題怎么解決”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。