我想深入研究Angular,为此我想知道会话存储,本地存储和Cookie之间的区别。
问题问题---
1)$ windows.sessionStorage可用于存储用户会话,但问题是,当你在新标签页中打开某个内容时,它再次要求用户登录。
2)本地存储是问题1的解决方案吗?如果是这样,这是否意味着我需要本地存储和会话存储在我的应用程序或本地存储中也将充当会话存储。
3)我也正在努力记住我的登录表单 - 将用户的密码和电子邮件存储在本地存储中是否安全,如果不是最好的方法记住我的角度
4)Cookie很棒,但公司公司是否允许它们在浏览器上?
希望找到合适的答案
谢谢
答案 0 :(得分:23)
1)sessionStorage
是临时的是正确的,而且它的目的是为了这样做。
2)本地存储将解决因打开新浏览器会话或等待很长时间后登录失败的问题,但不,localStorage
将不会充当浏览器请求的会话cookie。 / p>
3)许多不同的服务器端应用程序支持应用程序的加密和防篡改cookie支持。话虽如此,最好不要在客户端存储用户密码,也许是服务器识别并能够解密/解码并查找正确用户记录的标记。
4)我现在说,是的,通常认为cookie是安全的,但这总是有可能的,并且根据您的客户或观众,您可能会遇到问题。如果在浏览器中禁用了cookie,会话也会起作用。 (虽然我对此的看法是对一般人群的猜测,即:不要引用我的话)我的建议是在用户遇到页面时设置会话变量。然后将结果存储在localStorage或cookie中,然后当用户在会话耗尽后返回应用程序时,设置一些体系结构以重新进行身份验证并自动重新分配会话。
希望这有帮助!
编辑: 会话Cookie 在同一窗口中的浏览器标签之间共享。但是,已经指出会话存储不是。
答案 1 :(得分:7)
localstorage将跨标签工作:
这里有一个演示:
http://www.undefinednull.com/2014/02/25/angularjs-real-time-model-persistence-using-local-storage/