持久化用户cookie

3
我希望创建并保持cookie以存储某些用户信息,例如他们的偏好设置、头像等等。我想将这些cookie保留在用户的计算机上,直到它们被用户或我的应用程序移除。
我在ASP.NET MVC应用程序中使用Facebook/Google身份验证,因此已经使用了cookie,但当用户结束会话时它们会过期。
做我想做的事情的正确方法是什么?我可以想到两种方法:
1. 不要让cookie过期,而是更改其中的值以指示用户的会话已过期。 2. 创建另一个具有不同名称的cookie来存储用户信息/偏好设置。
我想看看其他人如何处理这个问题。
1个回答

2
您可以创建非常长的过期cookie,但这不是在用户浏览器上存储持久用户信息的最佳方法。
例如,cookie仅限于4096字节,如果您想存储图像(用户头像),则不够用。此外,cookie始终在您的连接中上下移动,无论您是否想访问它们->浪费带宽。
如果您正在开发强大的客户端应用程序,我建议您使用本地存储。支持更多或更少普遍(http://caniuse.com/#search=localstorage),它将持久存在直到被删除,并且不会遭受cookie所遇到的所有问题。
我建议您查看这个SO答案(Local Storage vs Cookies)以获取有关cookie与本地存储的更多详细信息。
如果您需要几个本地存储使用示例,请查看此链接(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');
    }
}

谢谢您的回复。顺便说一下,我并不是指我会保存实际的头像图片,只是头像文件的URL。 - Sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接