有两个域:domain1.com和domain2.com。domain1.com的服务器
app.get('/',(req,res,next)=>{
res.redirect('domain2.com/');
})和domain2.com的服务器
app.get('/',(req,res,next)=>{
res.cookie("name",'luoxia');
res.end();
})我发现cookie设置为domain1.com,为什么?
我想将cookie设置为domain2.com。该怎么做呢?
发布于 2017-09-17 17:17:54
无法为其他域设置cookies。允许这样做会带来一个巨大的安全漏洞。没有跨域cookie这回事。你可以在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当然,这并不是完全安全的,您必须在应用程序之间创建某种内部协议才能做到这一点。
最后,如果你对每个请求都这样做,用户会非常恼火,但如果这只是第一个请求,那就不是这样了。
请参阅RFC6265
用户代理将拒绝cookie,除非域属性指定了cookie的范围,该范围将包括源服务器。例如,用户代理将接受来自foo.example.com的域属性为"example.com“或"foo.example.com”的cookie,但用户代理不接受域属性为"bar.example.com“或"baz.foo.example.com”的cookie。
注意:出于安全原因,许多用户代理被配置为拒绝与“公共后缀”相对应的域属性。例如,一些用户代理将拒绝"com“或"co.uk”的域属性。(有关更多信息,请参阅第5.3节。)
https://stackoverflow.com/questions/46262286
复制相似问题