我可以使用html5本地存储来存储用户身份验证会话信息

Col*_*tes 14 session local-storage node.js angularjs passport.js

快速背景:

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

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

在登录服务器时,将基本用户会话信息放入cookie中供客户端在授权回调中查找,然后我使用angular-cookies'$ CookieStore访问客户端上的cookie,将其保存到rootscope并清除cookie .

问题:

除了用户刷新浏览器的任何事件之外,这是完美的工作,这导致我的rootcope会话显然被擦除.

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

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

此应用程序没有任何敏感数据,注册是免费的,登录实际上只有那里,所以我可以跟踪用户并存储在应用程序中为每个用户创建的数据.并且用户会话永远不会有密码(我只允许OAuth登录没有本地选项).

Dyn*_*lon 6

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

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

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

  • 自动登录怎么样?还是持久登录? (5认同)