我将NodeJS与Express框架以及localhost:3333上的cookie解析器中间件一起使用。我的前端由localhost:3000上的react dev服务器提供服务。这是我第一次尝试使用Cookie。以下是我为Cookie设置的选项:{ expires: maxAge , httpOnly: true, sameSite: 'none', secure: true, domain: null }
。我也尝试过使用和不使用sameSite,httpOnly和安全选项。以及domain = localhost。
这是尝试设置cookie时从http响应中获得的标头:
Set-Cookie:
sessionid=119faa6a3fcfab0628998ff2592e04ceb06cda12; Path=/; Expires=Sun, 29 Jan 2023 15:20:16 GMT; HttpOnly; Secure; SameSite=None
但是问题是cookie没有显示在Chrome的应用程序/ Cookies或Firefox的存储/ Cookies中。我也无法在不同端点上将cookie作为请求cookie进行访问。但是,它确实适用于我的vps。 vps使用正确的域名以及代理服务器,以便所有请求似乎都来自同一域/端口,我不知道这是否有所不同。
我还尝试将127.0.0.1 dev.mylocalhost.com添加到/ etc / hosts中,以便在localhost上伪造域名。只是阅读一些有关此内容的信息,不确定该如何工作。我不拥有该域,这只是在我的本地/ etc / hosts文件中。我没有尝试在本地主机上使用代理,因此正在从服务器的端口3333上设置cookie,而客户端是在端口3000上。再次不确定是否有区别。
答案 0 :(得分:0)
正在从服务器的3333端口设置cookie,而在客户端的端口3000上设置cookie。再次不确定是否会有所不同。
是的,那有很大的不同。就浏览器而言,localhost:3000和localhost:3333与example.com和example.net无关。您需要从使用Cookie的相同来源设置Cookie。这与任何Cookie安全设置(例如SameSite)无关。