电竞比分网-中国电竞赛事及体育赛事平台

分享

cookie 跨域

 丶平上 2016-12-30

cookie跨域問題

這個(gè)可以說是cookie中一個(gè)比較熱門的問題,面試的時(shí)候一般很愛聊這方面的問題。

跨域的業(yè)務(wù)需求大概是醬紫:用戶在進(jìn)行了登錄,希望在也同步進(jìn)行了登錄。如果是同一個(gè)主域比較簡單,可以通過setcookie中的domain參數(shù)進(jìn)行設(shè)定:例如有x.和xx.,可以通過設(shè)置domain為,從而的所有二級(jí)域名都可以共享這一個(gè)cookie?;诎踩矫娴脑?,在下面設(shè)置domain為是無效的。

那么是否真的沒有辦法可以實(shí)現(xiàn)這個(gè)了呢?這個(gè)還是有一些奇巧淫技的,這里介紹一種使用內(nèi)框iframe的方法。

具體思路:在下設(shè)置cookie后,嵌入一個(gè)iframe框鏈接的頁面,設(shè)置好頁面cookie后,再嵌入一個(gè)的頁面,然后通過parent.parent就可以調(diào)用最外層的的js方法,從而進(jìn)行跳轉(zhuǎn)或者一些其它的操作。具體代碼示例如下:

假設(shè)有頁面:login.php和callback.php,有頁面synclogin.php

的login.php代碼:

<?php
$sso = "e589hR6VnO8K1CNQZ4PSP/LWGBhRKE5VckawQwl1TdE8d4Q5E7tW";
setcookie("sso", $sso);
?>
login success...
<script type="text/javascript">
    function jumpTo() {
        location.href = "http://";
    }
</script>
<iframe src="http:///synclogin.php?sso=<?php echo $sso; ?>"></iframe>

的synclogin.php頁面

<?php
setcookie("sso", $_GET["sso"]);
?>
<iframe src="http:///callback.php"></iframe>

的callback.php頁面

<script type="text/javascript">
    parent.parent.jumpTo();
</script>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多