跨域/cookie共享
首先我们要知道 http协议规定 cookie跨域是不支持的!!!
何为跨域?
www.tianmaovip.cn
www.baidu.com
两个完全不同的域(顶级域名), 一般开发人员指的就是想在不同的域共享某些信息,达到同步(例如:登录)
原理:
既然不支持,那可想而知 我们就要通过一个中间容器来装载cookie信息!!!
这个中间容器 两方都能获取到!!! 那不就达到账户打通了吗!
下方用iframe标签实现个最简单的跨域共享:
在存cookies的方法里 我添加如下代码
const cookiesInit = {
st: data.st,
uid: data.aUser.uid,
name: data.aUser.name||'',
mobile: data.aUser.mobile,
ticket: data.ticket,
};
let iframe = document.createElement("iframe");
iframe.style.display="none";
iframe.frameborder = 0;
iframe.height = 0;
iframe.width = 0;
iframe.marginheight = 0;
iframe.marginwidth = 0;
iframe.src = `http://tianmaovip.cn/sign-in?${stringify(cookiesInit)}`;
document.body.appendChild(iframe);
A域登录成功后 生成iframe标签 请求src 将所要传递的cookie信息放在url中携带过去 src路径为B域
B域解析 URL 将传过来的信息存到cookie中
OK 跨域完成 试试吧!!
想看具体如何打通:孟欣 - 账号登录打通 / 一二级域名cookie-domain
还有 jsonp 动态生成 script 改变src 等方法。