angularjs – 我可以使用html5本地存储来存储用户认证会话信息

前端之家收集整理的这篇文章主要介绍了angularjs – 我可以使用html5本地存储来存储用户认证会话信息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
快速背景:

我正在写一个Mongo / Express / Angular / Node SPA并使用护照我已经设置了OAuth登录选项来处理用户身份验证/授权.

使用护照我成功地在服务器上维护会话,所以我所有的XHR请求(需要它)检查登录用户.

登录服务器时,将基本的用户会话信息放入一个cookie,以便客户端在授权回调中查找,然后我使用角度cookie’$CookieStore访问该客户端上的cookie,将其保存到rootscope并清除cookie .

问题:

除了用户刷新浏览器的任何事件之外,这是非常有效的,这导致我的rootscope会话显然被擦除.

因此,我正在考虑将会话信息存储在浏览器本地存储(使用store.js)中,即使在初始加载时,我可以检查浏览器本地存储中存在的会话,并绕过OAuth登录,如果已经有一个会话.

这是不好的做法还是在浏览器本地存储中存储用户会话信息时有一些后勤/安全问题?

这个应用程序没有任何明确的数据,注册是免费的,登录只是在那里,所以我可以跟踪用户和存储在每个用户的应用程序中创建的数据.而用户会话永远不会有密码(我只允许OAuth登录没有本地选项).

而不是localStorage,请查看sessionStorage对象: http://www.w3schools.com/html/html5_webstorage.asp

它的工作原理与localStorage完全相同,但是当浏览器窗口关闭时,整个sessionStorage对象将被删除,但是可以在任何页面刷新后生效.它是存储会话ID和类似的理想场所.

但是请注意,sessionStorage在浏览器选项卡中是隔离的 – 这意味着如果您的用户选择在新选项卡中打开一个链接,那么将会将sessionStorage初始化为空.

猜你在找的Angularjs相关文章