持久化用户 cookie

Persisting user cookie

我想创建并保留 cookie 来存储一些用户信息——即他们的一些偏好、他们的头像等。我希望这些 cookie 保留在用户的计算机上直到它们被删除——无论是被用户还是我的应用程序。

我在 ASP.NET MVC 应用程序中使用 Facebook/Google 身份验证,所以我已经使用了 cookie,但它们会在用户结束 his/her 会话时过期。

做我想做的事情的正确方法是什么?我可以想到两种方法:

  1. 不要使 cookie 过期但更改其中的值以指示用户的会话已过期。
  2. 创建另一个具有不同名称的 cookie 来存储用户 info/preferences。

我想看看别人是怎么处理的。

您可以创建过期时间非常长的 cookie,但这不是在用户浏览器上存储永久用户信息的最佳方式。

比如cookie限制在4096字节,如果要存储图片(用户头像)就不能那么多了。此外,无论您是否要访问它们,cookie 都会随着您的连接 总是 上下波动 -> 浪费带宽。

如果您正在开发强大的客户端应用程序,我可以谦虚地建议您使用本地存储吗?这种支持更普遍 (http://caniuse.com/#search=localstorage),它会一直存在直到被移除,并且不会因为 cookie 的所有问题而受到影响。

我建议您查看此 SO 答案 (Local Storage vs Cookies),了解有关 cookie 与 localstorage 的更多详细信息。

如果您需要一些本地存储使用示例,可​​以查看此 link (https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage)。 例如:

   function setInfo(key, data) {
    if (!window.localStorage) {
        window.localStorage.setItem(key, data);
    } else {
        console.log('Local Storage: not supported');
    }
}