我想深入了解Angular,为此,我想了解 session 存储,本地存储和Cookies之间的区别。

问题问题-

1)$ windows.sessionStorage可以用来存储用户 session ,但是问题是,当您在新选项卡中打开某些内容时,它再次要求用户登录。

2)本地存储是否可以解决问题1?如果是这样,这是否意味着我需要在我的应用程序中同时需要本地存储和 session 存储,否则本地存储也将充当 session 存储。

3)我还在登录表单上记住我-是否可以安全地在本地存储中存储用户的密码和电子邮件(如果不是),最好的方法是用 Angular 记住我

4)Cookies很棒,但是公司可以在浏览器中允许它们吗?

希望找到体面的答案

谢谢

最佳答案

1)sessionStorage是临时的,这是正确的,并且已设计为这样做的。

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

3)许多不同的服务器端应用程序都支持对应用程序的加密和防篡改cookie支持。话虽如此,始终最好不要在客户端中存储用户密码,这可能是服务器可能识别并能够解密/解码并查找正确用户记录的 token 。

4)我想说的是,是的,cookie通常被认为是安全的,但是这始终是可能的,并且取决于您的客户或听众,您可能在那里遇到问题。如果在浏览器中禁用cookie,则 session 也将不起作用。 (尽管我对此的看法是对一般人群的猜测,即:不要在此引用我的观点)

对于您的需求,我的建议是在用户遇到页面时设置 session 变量。然后将结果存储在localStorage或cookie中,然后当 session 终止后用户返回到应用程序时,应设置某种体系结构以自动重新认证和重新分配 session 。

希望这可以帮助!

编辑: session Cookie在同一窗口内的浏览器选项卡之间共享。但是, session 存储已被指出不是。

09-20 21:34