gpt4 book ai didi

javascript - 更改域时的 Cookie 迁移

转载 作者:行者123 更新时间:2023-11-30 20:26:03 25 4
gpt4 key购买 nike

最近我要将我的网站迁移到一个新域,我想将用户 cookie 也迁移到新域,这样他们就不必重新登录。

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

  1. 首先在 old-domain.com 上登陆用户,用 new-domain.com 更新所有 cookie,以便可以从 new-domain.com 访问它们,然后将浏览器重定向到 new-domain.com;

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

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

最佳答案

我认为像#2 这样的东西可以工作。

在新页面上,检查是否已设置 cookie。如果没有,请注入(inject)一个 iframe,例如:

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

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

这有一些潜在的问题:

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

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

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

我建议你添加一个新的 cookie migrated=yes,它可以用来检测用户是否需要经历这些。

关于javascript - 更改域时的 Cookie 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50915812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com