首先我要说的是,我已经彻底查看了有关此问题的所有有关stackoverflow和网络的信息,我尝试了几种不同的方法来尝试使其正常工作。
我正在使用包" cookie-session",但是当我将secure设置为true时,我的cookie随请求一起发送(我可以看到使用Postman发出登录请求)但会话似乎它无法通过浏览器工作。当secure设置为false时,一切正常,按预期工作。
让我解释一下我的设置,我有两台服务器:
第一台服务器
第二台服务器
根据我的理解,只有在通过HTTPS发出请求时才能发送安全cookie。我相信它(上面的设置)。
在我尝试使用信任代理的第二台服务器上,仍然没有运气:
app.set('trust proxy', 1);
app.use(cookieSession({
maxAge: 7 * 24 * 60 * 60 * 1000,
keys: [env.SESSION.COOKIE_KEY],
secure: true
}));
我还认为这可能与使用Nginx发送的标头有关,我在两台服务器上尝试了很多不同的标头,例如(proxy_set_header X-Forwarded-Proto $ scheme),仍然没有运气。
对于我的生活,我不知道该怎么做才能让安全的cookie工作。
另外再次提到一切正常,安全设置为false。当secure设置为true时,我可以通过Postman向我的登录请求,并在请求中接收我的cookie,但似乎会话未应用于客户端。
这与未在第二台服务器上安装HTTPS证书有什么关系吗?如果是这样,我将如何添加一个,因为两个服务器都在同一个域上运行" www.example.com" + proxy / api请求" www.example.com/api" ;?谢谢你的帮助。