我最近使用nodejs express测试了与会话相关的问题,例如网络应用中的prevelage升级。它是我第一次测试nodejs应用程序,情况是这样的,该网站有3个用户角色admin,manager,user和所有三个具有相同的connect.sid值,并且这三个在应用程序上有不同的privelages,但那是唯一的cookie为每个人提供auth之后的礼物。
我很困惑nodejs如何处理会话以及它如何区分这是管理员,他是经理和类似的东西?
有没有具有nodejs网络编程经验的人可以对此有所了解吗?
答案 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存储的数据(标识您登录的人)会发生变化。