最近我将我的网站迁移到新域名,我也想将用户cookie迁移到新域名,因此他们不必再次登录。
经过一些研究,我发现有两种可能的方法:
土地用户首先在old-domain.com上,使用new-domain.com更新所有Cookie,以便可以从new-domain.com访问它们,然后将浏览器重定向到new-domain.com; < / p>
或者,在new-domain.com上,我可以从old-domain.com注入一个iframe,让它将cookie写入新网站......
我不确定这两个是否可以实现我在域之间迁移cookie的目标。是否有建议的方法,以便用户不必再次登录才能使用新域名?
答案 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。
这有一些潜在的问题:
加载iframe并让它发送cookie是异步的。页面在等待时应该做什么?
如果您在服务器上使用cookie,则在客户端从服务器接收页面之前,上述代码不会设置它们。服务器需要专门处理未迁移的用户,首先向他们发送复制cookie的脚本,然后将其重定向回服务器脚本。
您必须处理从未在旧域中使用过的用户。 getcookies.html
应该检测到没有设置任何cookie,并发回一条消息表明这一点。
我建议您添加一个新的Cookie migrated=yes
,用于检测用户是否需要完成此任务。