一个浏览器中不同用户的 Cookie

Cookies for different user in one browser

网站页面上有一些下拉菜单(用户只有在 he/she 通过身份验证后才能访问此页面),我想将此值保存到 cookie 并在以下时间将其设置回下拉菜单用户回到我的网站。

将当前选择的下拉选项值保存到 cookie 并在以后检索它不是问题。但是如果我让另一个用户在同一个浏览器上登录,我会遇到一些问题。它从以前用户保存的 cookie 值中获取。

那么,有什么好的方法可以将来自同一浏览器的不同用户的 cookie 分开?我正在考虑创建名称类似于 'username-dropdown' 的 cookie,但我怀疑这是最好的解决方案。

我使用 Java 和 Tomcat 8.

我在这里猜测您不需要将此信息与每个 HTTP 请求一起发送到您的服务器;您只需要在客户端存储信息(并且您可以根据需要通过 ajax 将其发送到服务器)。

如果是这样,我会使用本地存储,而不是 cookie。当然,使用用户名或用户 ID 等是合理的:

// Setting:
localStorage.setItem(username + "-dropdown", value);

// Getting:
var value = localstorage.getItem(username + "-dropdown");

或者您可以使用括号表示法:

// Setting:
localStorage[username + "-dropdown"] = value;

// Getting:
var value = localstorage[username + "-dropdown"];

几乎不使用括号表示法的唯一原因是,如果您需要在旧版浏览器上填充本地存储(有些填充可以为您回退到 cookie),但本地存储是 supported on all modern browsers,并且还有 IE8,所以这些浏览器在这一点上确实非常过时了。