我想从他们活跃的passport.js会话中踢出用户。
我可以通过此链接方法获取用户名:
Trying to view all logged in Users in Express.js Node.js Passport.js
是否有一种简单的方法可以杀死特定用户的当前会话,因此他们没有经过验证的有效用户'他们登录时的会话?
我希望能够实现这一目标。有人离开服务器,基本上剥夺了他们可能拥有的任何开放浏览器中的任何会话。
答案 0 :(得分:1)
当您确定用户基于令牌的用户时,一种选择是在您的反序列化中抛出此检查。您可以像正常一样找到用户对象,然后检查它是否有一个字段说不验证会话而不返回用户。
例如,如果对象上有kick_until日期并在反序列化中检查,那么直到它在该日期之后,在反序列化中返回一个unauth会话。
选项2:中间件应用于检查此信息的所有路由以及对req.session.destroy();
的调用以强制会话被破坏。 (不会阻止重新登录,但如果您忘记切换确定在第一次执行此操作后应该踢的字段,会话将不会坚持并将重新销毁)