如何使用Express js中的cookie重定向到不同的域

Kir*_*n G 2 javascript node.js express

我正在使用Express on Node开发一个Web应用程序.我试图实现,其中一个用户直接登录,他登录到我的网站后重定向到另一个网站的代理登录功能.

在我的路由功能我写了下面的代码
res.cookie("fanws","值");
res.redirect(' http:// hostname/path ');
//另一个网站

我在chrome中使用了调试器,发现cookie没有被添加到重定向页面中.

我在localhost上运行应用程序,我重定向到的站点托管在本地网络上的另一台服务器上.

如何在重定向路径上添加cookie?

jfr*_*d00 5

简而言之,您不能在浏览器中设置cookie或为您不控制服务器的站点读取cookie,或在该页面中拥有您自己的客户端代码.出于安全原因,cookie系统是出于故意的目的而设计的.因此,从页面或服务器中http://www.domain1.com,您无法读取或设置其他域的cookie.

如果您在两个域的页面中都有代码,那么您可以将一些信息传递给第二页(最有可能作为查询参数),告知重定向页面中的代码采取某些操作(如设置cookie),但是必须控制第二页中的Javascript或服务器才能够做到这一点.


nodejs代码中的cookie依赖于当前请求/响应,这意味着当浏览器处理当前请求的响应时,它与浏览器中的该域相关联.

res.redirect(...)返回302带有新URL的响应,作为对当前请求的响应.然后,浏览器会看到此响应代码并向新页面发出新的Web请求.除非您拥有该域的服务器,否则无法从该服务器为该新域设置cookie.这是cookie安全性的一个基本方面.Cookie只能通过浏览器中的Javascript从与cookie相同的来源页面访问,服务器只能为他们正在处理的特定请求中的特定来源设置Cookie.