更改域时的Cookie迁移

时间:2018-06-18 18:54:55

标签: javascript cookies

最近我将我的网站迁移到新域名,我也想将用户cookie迁移到新域名,因此他们不必再次登录。

经过一些研究,我发现有两种可能的方法:

  1. 土地用户首先在old-domain.com上,使用new-domain.com更新所有Cookie,以便可以从new-domain.com访问它们,然后将浏览器重定向到new-domain.com; < / p>

  2. 或者,在new-domain.com上,我可以从old-domain.com注入一个iframe,让它将cookie写入新网站......

  3. 我不确定这两个是否可以实现我在域之间迁移cookie的目标。是否有建议的方法,以便用户不必再次登录才能使用新域名?

1 个答案:

答案 0 :(得分:1)

我觉得#2之类的东西可以运作。

在新页面上,检查Cookie是否已设置。如果没有,请注入iframe,如:

<iframe src="http://old-domain.com/getcookies.html" style="height: 0; width: 0;">

getcookies.html将只包含获取Cookie的Javascript,并使用postMessage()将其发送到新页面。新页面上的Javascript将收到该消息,然后设置它收到的cookie。

这有一些潜在的问题:

  1. 加载iframe并让它发送cookie是异步的。页面在等待时应该做什么?

  2. 如果您在服务器上使用cookie,则在客户端从服务器接收页面之前,上述代码不会设置它们。服务器需要专门处理未迁移的用户,首先向他们发送复制cookie的脚本,然后将其重定向回服务器脚本。

  3. 您必须处理从未在旧域中使用过的用户。 getcookies.html应该检测到没有设置任何cookie,并发回一条消息表明这一点。

  4. 我建议您添加一个新的Cookie migrated=yes,用于检测用户是否需要完成此任务。