对nodejs会话管理感到困惑

时间:2016-11-28 18:09:09

标签: node.js session web

我最近使用nodejs express测试了与会话相关的问题,例如网络应用中的prevelage升级。它是我第一次测试nodejs应用程序,情况是这样的,该网站有3个用户角色admin,manager,user和所有三个具有相同的connect.sid值,并且这三个在应用程序上有不同的privelages,但那是唯一的cookie为每个人提供auth之后的礼物。

我很困惑nodejs如何处理会话以及它如何区分这是管理员,他是经理和类似的东西?

有没有具有nodejs网络编程经验的人可以对此有所了解吗?

3 个答案:

答案 0 :(得分:0)

您可以将变量分配到会话中,例如:

request.session.level = 'admin';

答案 1 :(得分:0)

connect.sid是会话ID cookie的DEFAULT名称。 https://github.com/expressjs/session#name

Cookie将存储在您的计算机上,该cookie仅存储会话ID。会话数据实际上将存储在服务器上。

使用req.session查看服务器上的会话数据。 https://github.com/expressjs/session#reqsession

答案 2 :(得分:0)

  

我登录1检查了注销的cookie并登录到其他,我看到相同的cookie值

Cookie值仅用于跟踪会话。所有有趣的信息都保存在服务器上。

当您到达网站时,会获得会话和会话cookie以将您的浏览器连接到该网站。此时您尚未登录,但仍会获得会话cookie。 (至少通常情况下,您尚未分享会话实施的具体细节,因此我们无法确定这一点。)

有关登录用户的详细信息是存储在服务器端并与该会话ID相关联。

如果您注销并再次登录,您仍在使用相同的会话,只是根据服务器上该会话ID存储的数据(标识您登录的人)会发生变化。