Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 快速会话在生产/部署中不起作用_Node.js_Axios_Express Session_Third Party Cookies - Fatal编程技术网

Node.js 快速会话在生产/部署中不起作用

Node.js 快速会话在生产/部署中不起作用,node.js,axios,express-session,third-party-cookies,Node.js,Axios,Express Session,Third Party Cookies,Express会话在开发环境中工作,因为它在我的浏览器中设置了“connect.sid”cookie。但是,在生产环境中,它不存储cookie,而是使用同一个会话,每次都创建一个新的会话。我相信,如果我能以某种方式保存第三方cookie,这个问题就会得到解决,因为我的应用程序是使用Heroku部署的。最后,我还使用了express cors来避免cors问题(不知道这是否与cookie问题有关)。我在cors中设置了{credentials:true},在Axios中也设置了{withCrede

Express会话在开发环境中工作,因为它在我的浏览器中设置了“connect.sid”cookie。但是,在生产环境中,它不存储cookie,而是使用同一个会话,每次都创建一个新的会话。我相信,如果我能以某种方式保存第三方cookie,这个问题就会得到解决,因为我的应用程序是使用Heroku部署的。最后,我还使用了express cors来避免cors问题(不知道这是否与cookie问题有关)。我在cors中设置了{credentials:true},在Axios中也设置了{withCredentials:true}。

Heroku使用反向代理。它提供https端点,但随后将未加密的流量转发到网站

试试像这样的东西

app.enable('trust proxy')
然后退房
问题已解决!->添加sameSite:“无” 用于生产的完整Cookie配置(快速会话):

曲奇:{ httpOnly:true, 安全:是的, 最大值:1000*60*60*48, sameSite:“没有”
}

这里没有足够的体系结构信息,我们无法提供帮助。显示您的快速会话初始化代码。准确描述首先创建会话时使用的请求URL,然后描述创建新会话时看到的后续URL。然后,显示创建第一个会话的确切客户端代码,以及无法访问该会话的第二个客户端代码。显示真实世界中的所有URL。由于您可能是新手,有关代码的问题应始终显示相关代码。当您显示相关的实际代码时,您将更准确、更快地得到答案。这使我们能够看到您的具体问题并提供具体的解决方案,而不必试图在一本书中教一整章来猜测您的情况下可能会发生什么,并用所有可能的方式解释整个通用解决方案。在第一个小时内根本没有参与是因为你的问题太模糊,没有包含你的代码,也没有足够详细地描述情况。谢谢!我刚刚解决了这个问题app.enable('trust proxy')>不起作用,但您对heroku proxy的看法是正确的。在使用express会话时,我只需在cookie.sameSite中添加以下行。sameSite:cookie:{httpOnly:true,secure:true,maxAge:1000*60*60*48,sameSite:'none'}