问题描述
前端登录同步依赖localStorage,而localStorage只能在当前域名下访问。现www.a.com需要用www.b.com的登录页登录,登录完成的信息保存在www.b.com域下,如何将登录状态同步至www.a.com?
拟用方案
通过ifame,postMessage通信
-
在www.a.com中内嵌www.b.com的ifame,需要登录时将ifame置顶,登录成功后通过postMessage将登录信息传回至www.a.com。此方案理论上可行,但是登录页登录成功之后会有跳转,如果变成内嵌ifame需要做对应的改造,且不排除www.b.com放入ifame中访问可能会出现一些样式或功能上的问题,此方案未尝试。
-
在www.a.com中内嵌www.b.com下的一个页面c.html。需要登录时直接跳转www.b.com去登录,登录完成之后,c.html获取到www.b.com域下的
// www.a.com index.js const login = function() { window.addEventListener( 'message', e => { if (event.origin != 'https://www.b.com') return; con