【发布时间】:2023-03-07 14:23:01
【问题描述】:
我无法理解 Web 应用程序的会话概念。我正在使用 Express 3.0 运行 Node.js 服务器。
要求:
-
为每个登录的用户创建一个会话
-
存储此会话并使用它来验证用户是否已登录(防止两台设备同时使用同一用户)
-
限制对某些页面的访问(通过将会话 ID 与其他一些数据相匹配)
护照存储会话在哪里?
【问题讨论】:
-
如果您使用 Express/Connect,Passport 可以使用他们的
sessionmiddleware。结帐passportjs.org/guide/configure,尤其是。 “中间件”和“会话”。 -
@crzrcn :嗨,我不太明白如何在接受的答案中阻止用户从两台机器登录。你能解释一下吗?
-
@mystikacid 我不再使用 Passport,我什至不记得我曾问过这个问题。无论如何,您希望在某处为您的用户存储会话。您存储的会话值应该能够指示会话是否处于活动状态,以及它属于哪个用户。当您的应用收到映射到同一用户的另一个会话创建操作时,您的应用应删除或停用同一用户的所有其他会话。至于 Passport 的具体用法,我帮不了你。
-
@crzrcn :没关系...逻辑仍然有帮助。谢谢!
标签: node.js session express passport.js