Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 我可以使用html5本地存储来存储用户身份验证会话信息吗_Angularjs_Node.js_Session_Local Storage_Passport.js - Fatal编程技术网

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

Angularjs 我可以使用html5本地存储来存储用户身份验证会话信息吗,angularjs,node.js,session,local-storage,passport.js,Angularjs,Node.js,Session,Local Storage,Passport.js,快速背景: 我正在编写Mongo/Express/Angular/Node SPA,并使用passport设置OAuth登录选项来处理用户身份验证/授权 使用passport,我成功地在服务器上维护会话,因此我的所有XHR请求(需要它)都在检查登录用户 在服务器登录时,将基本用户会话信息放入cookie中,供客户端在授权回调中查找,然后我使用angular cookies的$CookieStore访问客户端上的cookie,将其保存到rootscope并清除cookie 问题: 除了用户刷新浏览

快速背景:

我正在编写Mongo/Express/Angular/Node SPA,并使用passport设置OAuth登录选项来处理用户身份验证/授权

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

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

问题:

除了用户刷新浏览器的任何事件外,这都可以正常工作,这会导致我的rootscope会话明显被擦除

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

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


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

请查看
会话存储
对象,而不是
本地存储

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


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

视情况而定。但请确保我无法修改本地存储以在您的站点上创建有效登录。那太糟糕了。我只会存储会话id,而且我可能会将其存储在cookie中。@MarkusMikkolainen是一种cookie,是一种更好的选择,因为它能够进入并修改localstorage中的对象?不,但它在任何地方都有效,并且是存储sessionid的一个尝试过的选项,安全性不是来自cookie,而是来自存储会话ID,而不是所有登录信息。如果您必须将内容存储在localstorage中,并且很容易被修改,您可以在存储之前对其进行加密签名,然后在加载时检查签名。但是只存储sessionid更容易。autologin呢?还是永久登录?