尝试在Express.js Node.js Passport.js中查看所有登录的用户

时间:2018-03-05 06:33:47

标签: node.js express mongoose passport.js

尝试在Express Passport中查看所有登录用户的所有会话,并希望能够看到当前登录的用户。什么是最好最快的方法?

我想也许我可以在登录时执行此操作并更新用户模型db' online'布尔变量为true。然后我可以在Users.find()上检查online = true ...

但是,如果用户注销或会话结束,我将如何检查?

除非没有写入数据库,否则有更简单的方法可以做到这一点?

我最终希望用户选择不在线查看。

1 个答案:

答案 0 :(得分:2)

如果使用 express-session (如果商店是默认值: MemoryStore ),您可以从 req 对象:

var sessions = req.sessionStore.sessions

例如(对我而言)它看起来像是:

{
    KT29eOp9XkzFfXWdz_UVUQMI4Qf3VTxE: 
        '{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},
        "passport":{"user":"5a95b34b52670e19200ec48e"}}',
    WW7BAhNNBbuFUsKQ0dbalgToEEfGES8p: 
        '{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},
        "passport":{"user":"5a9d56a18149111cf0556991"}}' 
}             
通信道具中的

用户值是MongoDB用户集中用户的_id。