2014-10-03 56 views
14

我想深入了解Angular,为此我想知道Session Storage,Local Storage和Cookies之间的区别。AngularJS中会话存储,本地存储和Cookie之间的区别

问题问题---

1)$ windows.sessionStorage可以用来存储用户会话,但它存在的问题是,当你打开的东西在新标签中再次要求用户登录。

2)本地存储是问题1的解决方案吗?如果是这样,这是否意味着我需要本地存储和会话存储在我的应用程序或本地存储中也将充当会话存储。

3)我也在努力记住我我的登录屏幕上 - 是它的安全存储用户的密码和电子邮件在本地存储对于这一点,如果没有什么是做记得我在角

最好的方法

4)饼干很棒,但企业公司允许他们在那里浏览器?

希望能找到像样的答案

感谢

+0

如果回答以下问题,提出了解决您的问题,请点击选中标记旁接受答案答案。这将有助于未来用户搜索相同问题的答案。谢谢。 – SnareChops 2014-10-06 02:52:39

回答

23

1)这是正确的,sessionStorage是暂时的,它被设计这样做。

2)本地存储将解决登录问题,即打开新的浏览器会话或等待很长时间后登录消失,但不会,localStorage不会充当浏览器请求的会话cookie。

3)许多不同的服务器端应用程序支持应用程序的加密和防篡改cookie支持。也就是说,最好不要将用户密码存储在客户端,也许可能是服务器会识别并能够解密/解码并查找正确用户记录的令牌。

4)我会说现在是的,饼干通常被认为是安全的,但这总是一种可能性,并且取决于您的客户或观众,您可能在那里有问题。如果Cookie在浏览器中被禁用,会话也不会工作。 (虽然我的观点是对一般人群的猜测,例如:请不要在此引用我的意见)

我对您的需求的建议是在用户遇到页面时设置会话变量。然后将结果存储在localStorage或cookie中,然后当用户在会话终止后返回应用程序时,设置一些架构来重新进行身份验证并自动重新分配会话。

希望这会有所帮助!

编辑:会话Cookie在同一个窗口内的浏览器标签之间共享。然而会话存储已被指出不是。

+2

在Angular中会话存储 - 在新选项卡中打开时会丢失信息。除非我做错了什么。虽然很好的答案。谢谢 – GeekOnGadgets 2014-10-03 04:09:26

+0

这很奇怪。你正在使用哪种浏览器?或者你有没有在所有浏览器中注意到这一点? – SnareChops 2014-10-03 04:13:29

+4

会话存储的作用域是特定的选项卡/窗口,即使它们访问相同的URI,它也不会在浏览器选项卡之间共享。如果您需要在两个选项卡或窗口之间共享某些内容,则需要使用'localStorage'。请注意,同源规则仍适用。 – demisx 2014-10-03 05:07:11