Cookie - 跨多个域设置

Cla*_*Boy 12 javascript cookies jquery setcookie

我公司的设置如下:

  • subdomain1.domain1.com
  • subdomain2.domain1.com
  • subdomain3.domain1.com
  • subdomain4.domain1.com
  • subdomain5.domain1.com
  • subdomain6.domain1.com

  • subdomain1.domain2.com

  • subdomain2.domain2.com
  • subdomain3.domain2.com
  • subdomain4.domain2.com
  • subdomain5.domain2.com
  • subdomain6.domain2.com

在每个站点上,请注意每个子域可以有一百个站点,用户可以登录.作为开发人员,我们必须在多个浏览器中测试前端,但是一旦登录后某些部分可能只需要一些工作.

我编写了一个用户脚本,可以保存用户名和密码(以及其他因保密而无法提及的详细信息).脚本通过填写登录表单并单击"提交"按钮来检查用户帐户是否存在.如果没有,它会为我们注册 - 从而使注册过程自动化.

在同一域上的子域之间共享cookie非常简单.如果我在subdomain1.domain1.com上,我可以保存一个可以通过subdomain2.domain1.com检索的cookie.但是,我还想为domain2保存这些.我似乎无法让这个工作.

我可以从这里看到两个解决方案 - 或者:

1)使用userscript附加iFrame,该用户脚本在domain2上加载站点.然后使用查询字符串来决定要设置什么,或者;

2)使用method ="POST"的表单,并简单地发布到每个域上的文件.

无论哪种方式都是资源密集型的,特别是如果cookie每次更改时都会更新.我们还有URL屏蔽功能.所以我们还必须考虑像abc.clientdomain1.com,abc.clientdomain2.com等网站.

有谁知道一个更简单的方法来实现这一目标?

Ali*_*guy 11

专门为您的Cookie创建一个公共域,并将其用作getter/setter API.

http://cookie.domain.com/set/domain1
http://cookie.domain.com/get/domain1

http://cookie.domain.com/set/domain2
http://cookie.domain.com/get/domain2
Run Code Online (Sandbox Code Playgroud)

等等.


Sub*_*bin 8

这个答案与我在" 使用PHP或JavaScript在多个域上设置cookie "这一问题的答案略有不同.

做谷歌正在做的事情.创建一个PHP(或任何其他服务器语言文件)文件,用于在所有3个域上设置cookie.然后在要设置登录的域上,创建一个HTML文件,该文件将加载在其他2个域上设置cookie 的PHP文件.例:

<html>
 <head></head>
 <body>
 Please wait..........
 <img src="http://domain2.com/setcookie.php?user=encryptedusername"/>
 <img src="http://domain3.com/setcookie.php?user=encryptedusername"/>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后在body标签上添加onload回调.只有当图像完全加载时才会加载文档,即在其他2个域上设置cookie时.Onload回调:

<head>
 <script>
 function loadComplete(){
  window.location="http://domain1.com";//URL of domain1
 }
 </script>
</head>
<body onload="loadComplete()">
Run Code Online (Sandbox Code Playgroud)

现在cookie设置在三个域上.

资源

  • @SillyDude 当用户登录 Google 时,它​​将在非 .google.com 域(例如 youtube.com)上登录同一用户。我认为他们仍然使用这个,在登录 Google iirc 时在页面源代码中找到它 (2认同)