为什么从多个选项卡注销后会生成不同的会话 ID?

Why differrent session ids are generated after logging out from multiple tabs?

我在我的应用程序中使用 Spring 安全性。我刚刚遇到一个非常具体的问题。当我使用多个选项卡时,如果我按顺序从所有选项卡注销。每个页面都有新的 sessionid 值(fiddler 为每个登录页面请求显示新的会话 id)。这会导致问题,因为只有最新的登录页面有效,而所有其他页面都显示 sessionid 不匹配错误。

我该如何解决这个问题?

当您注销时,服务器将终止您当前的会话,并创建一个新会话。这个新会话当然是由不同的sessionid 表示的。

因此,当您第二次点击注销 link 时,您会得到一个带有新会话 ID 的登录页面。

如果您随后刷新第一个选项卡,在注销第二个选项卡后,您可能拥有正确的会话 ID,并能够从那里登录。