先说下我的测试,本地开两个服务,locahost:port,然后网上都是说修改domain,可是两个domain一样啊,是因为本地localhost不行么,而且localstronge存储会带端口和domain也不一样,到底怎么做啊?我现在需要不同子域共享登录信息
先说下我的测试,本地开两个服务,locahost:port,然后网上都是说修改domain,可是两个domain一样啊,是因为本地localhost不行么,而且localstronge存储会带端口和domain也不一样,到底怎么做啊?我现在需要不同子域共享登录信息
大概思路:嵌套 <iframe>
然后使用 postMessage
传递数据。
详细做法请看我这篇文章:使用 postMessage
跨域名迁移 localStorage
。
得看你的具体需求是什么,是本地的开发环境想要共享,还是线上生产环境的想要共享。
本地的开发环境可以在启动不同项目的时候使用同一个 port
,只要不同时启动多个项目就好。这样的话,登录的时候就可以直接用其他项目的登录信息了。如果是多个项目的话,得需要你本地再转发一次,就会比较麻烦。
要是线上的生产环境的话,可以用 @MrBigShot 提到的使用 NG 去代理转发不同的服务在同域环境下,当然这个只是一个方式。真的想做多站点的单点登录,其实现在使用最多的方式其实通过一个 CAS
认证服务去做的但这个就是后端的范畴了。
如果说是已经上限的项目想要切换域名,并且保持原域名下的本地缓存信息可以参考 @Meathill 的这篇文章 使用 postMessage 跨域名迁移 localStorage 里面很清晰的描述了处理思路和过程。
8 回答4.6k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
5 回答1.3k 阅读✓ 已解决
端口不同只能共享
cookie
,不能共享localStorage
等浏览器储存