问题:我有很多在同一域名下运行的网络服务,需要共享一个cookie。前端是在AngularJS中开发的。在本地测试时,服务在localhost上运行在不同的端口,例如localhost:8181,localhost:8182等。在prodoction中,这将看起来像www.mydomain.com/a / ...和www.mydomain.com/ b / ...虽然我没有在我的cookie中指定端口,但是在本地开发期间不会跨端口共享cookie。有什么想法吗?
答案 0 :(得分:1)
我也在努力解决这个问题。您应该在同一域上但在不同路径下运行所有服务,以便在它们之间共享Cookie。
我能找到的唯一解决方案是使用NGINX反向代理。因此,您可以向http:// localhost和http:// localhost / back发出请求,NGINX重定向到http:// localhost:3000和http:// localhost:5000,无论您的应用程序运行在哪个端口上,Cookie都会工作。
在这个要点中,我分享了一个如何与docker一起运行的基本示例,其中包括一个NGINX服务器及其必要的基本配置。
https://gist.github.com/hugojavier667/c6033b74305fb547ed74625f0bb44dcb
您可以添加与服务一样多的路线。
答案 1 :(得分:0)
我认为不可能与不同的域共享cookie,这是浏览器正在实施的安全措施。
据我所知,另一个端口将被视为一个不同的域。
参考这个问题: Sharing cookies across different domains and different applications (classic ASP and ASP.NET)