在Passport中杀死用户会话

时间:2018-03-16 16:43:04

标签: node.js mongodb express session passport.js

我想从他们活跃的passport.js会话中踢出用户。

我可以通过此链接方法获取用户名:

Trying to view all logged in Users in Express.js Node.js Passport.js

是否有一种简单的方法可以杀死特定用户的当前会话,因此他们没有经过验证的有效用户'他们登录时的会话?

我希望能够实现这一目标。有人离开服务器,基本上剥夺了他们可能拥有的任何开放浏览器中的任何会话。

1 个答案:

答案 0 :(得分:1)

当您确定用户基于令牌的用户时,一种选择是在您的反序列化中抛出此检查。您可以像正常一样找到用户对象,然后检查它是否有一个字段说不验证会话而不返回用户。

例如,如果对象上有kick_until日期并在反序列化中检查,那么直到它在该日期之后,在反序列化中返回一个unauth会话。

选项2:中间件应用于检查此信息的所有路由以及对req.session.destroy();的调用以强制会话被破坏。 (不会阻止重新登录,但如果您忘记切换确定在第一次执行此操作后应该踢的字段,会话将不会坚持并将重新销毁)