鍍金池/ 問答/HTML/ 如何實現(xiàn)cookie的跨站點設置

如何實現(xiàn)cookie的跨站點設置

前提:在域名".myweb.com"下,有兩個站點A(a.myweb.com)和B(b.myweb.com),兩個站點之間可以進行單點登錄。單點登錄的邏輯為,當用戶訪問某個站點下的任何頁面時,會判斷當前站點下是否有會話信息的cookie,沒有則訪問Login站點(login.myweb.com),判斷Login站點中是否有會話信息的cookie,沒有則重定向到登錄頁,有則跳轉到執(zhí)行判斷前的頁面;當用戶在某個站點登錄后,會在當前站點和Login站點中存儲當前會話信息的cookie。(單點登錄的邏輯由于客觀原因現(xiàn)已無法修改)。

問題:在A站點中放一個iframe,iframe的內容是B站點的某個頁面,但由于單點登錄中的重定向使用的是window.top,所以會導致整個頁面進行跳轉到B站點中,所以希望在iframe渲染B站點的頁面前,將A站點會話信息的cookie設置到B站點中,這樣便可實現(xiàn)不訪問Login站點從而觸發(fā)重定向。

我使用的是jq.cookie的插件,但實際開發(fā)中,在A站點中執(zhí)行以下代碼是不起效的。通過查閱資料,應該由于cookie跨域設置導致的,請問有什么解決辦法嗎?

$.cookie('_serviceId','f850...', { domain: '.b.myweb.com',path: '/'});
回答
編輯回答
你的瞳

如果希望在myweb.com域下共享cookie,那么把domain改為.myweb.com就好了。

2017年10月25日 08:12
編輯回答
痞性

直接設置主域.xxx.com的cookie是一個辦法,另外要看你跳轉的時機,如果是服務器的重定向的話,就沒法用js做跨網頁了,如果是js判斷cookie的話倒是可以在跳轉之前用iframe跨子域的方法獲得cookie。

如果想要強行設置的話,A站點可以和B站點約定一個加密方式,在嵌入iframe的時候,src帶上加密過后的cookie內容,B站點檢查到該字段就解密出來然后直接set-cookie。類似于token吧

2017年1月13日 03:18