Express 4 - 从管理请求中销毁所有会话

时间:2016-02-01 19:22:20

标签: javascript node.js session

我希望应用程序的管理员能够销毁所有常规用户的会话。

在快递4中,我们可以使用

销毁会话
req.session.destroy();

但是此函数会破坏附加到请求的会话。有没有办法销毁除当前请求会话(管理员会话)之外的所有会话?如何从请求中访问所有会话?

1 个答案:

答案 0 :(得分:1)

这取决于你使用的会话商店。您需要从中删除会话。

如果您使用MongoDB,则可以轻松删除指定的会话:

db.sessions.remove({admin:false})

使用redis,最简单的方法是刷新整个数据库,但是你也会删除当前的会话。

flush db

您可以迭代按键并逐个删除它,但我不推荐它。 redis keys(*)锁定数据库,并且有一百万用户,这可能是一个大问题。