我在我的应用程序中遇到了这个问题。每当浏览器刷新时,它都会为 cookie 重新分配一个新的内容,从而获得一个新的 session id。这是浏览器的正确行为吗?
该应用程序使用 nodejs 的快速和连接繁琐的库。用户被注销是因为 cookie 内容和会话 id 现在每次刷新时都不同。关于如何解决这个问题的任何建议?
如果是您的节点服务器代码负责为用户和会话设置 cookie(使用Set-Cookie
标头或为具有相同内容的客户端生成 Javascript 文件),那么它还应该检查请求中的现有 cookie。当页面重新加载时,请求将再次到达您的服务器。此时,您可以读取传递给服务器的 cookie(其中包括上次设置的会话和用户的 cookie)。如果这些 cookie 被发现并且有效,则服务器不应为其生成新的 cookie。
即使此逻辑不驻留在服务器上并且是客户端 JS 的一部分,但总体思路是相同的。如果您可以正确读取现有的 cookie,请不要创建新的 cookie。