Javascript 设置cookie交叉原点

Javascript 设置cookie交叉原点,javascript,node.js,express,cookies,Javascript,Node.js,Express,Cookies,有两个域:domain1.com和domain2.com。domain1.com的服务器: app.get('/',(req,res,next)=>{ res.redirect('domain2.com/'); }) app.get('/',(req,res,next)=>{ res.cookie("name",'luoxia'); res.end(); }) 以及域名2.com的服务器: app.get('/',(req,res,next)=>{

有两个域:
domain1.com
domain2.com
domain1.com的服务器

app.get('/',(req,res,next)=>{
    res.redirect('domain2.com/');
})
app.get('/',(req,res,next)=>{
    res.cookie("name",'luoxia');
    res.end();
})
以及域名2.com的服务器:

app.get('/',(req,res,next)=>{
    res.redirect('domain2.com/');
})
app.get('/',(req,res,next)=>{
    res.cookie("name",'luoxia');
    res.end();
})
我发现cookie设置为
domain1.com
,为什么


我想将cookie设置为
domain2.com
。如何执行此操作?

无法为其他域设置Cookie。允许这样做会带来巨大的安全漏洞。 没有跨域cookies这样的东西。您可以在foo.example.com和bar.example.com之间共享cookie,但不能在example.com和example2.com之间共享cookie,这是出于安全原因

如果要将数据传递到另一个域,可以将其编码到URL中。或者你也可以像这样的黑客

将所有cookie集中在一个域中

   1. let's say cookiemaker.com When the user makes a request to example.com you redirect him to cookiemaker.com
   2.cookiemaker.com redirects him back to example.com with the information you need
当然,它不是完全安全的,你必须在你的应用程序之间创建某种内部协议才能做到这一点

最后,如果你在每个请求上都做这样的事情,这对用户来说是非常烦人的,但如果这只是第一个请求,就不会了

见:

除非域属性无效,否则用户代理将拒绝cookie 指定包含源服务器的cookie的作用域。 例如,用户代理将接受具有域的cookie 中的“example.com”或“foo.example.com”属性 foo.example.com,但用户代理将不接受带有 “bar.example.com”或“baz.foo.example.com”的域属性

注意:出于安全原因,许多用户代理被配置为拒绝 与“公共后缀”对应的域属性。例如 一些用户代理将拒绝“com”或“co.uk”的域属性。 (详见第5.3节。)

:


谢谢你的回复,但我想你没有理解我的问题,正如你所说,当
example.com
被重定向到
cookiemaker.com
,并且
cookiemaker.com
无法将cookie设置为
example.com
,但我发现cookie被设置为
example.com
,就像我的问题一样。我不想将cookie设置为
example.com
,而是设置为
cookiemaker.com