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

尝试在Express.js Node.js Passport.js中查看所有登录用户,node.js,express,mongoose,passport.js,Node.js,Express,Mongoose,Passport.js,正在尝试在Express Passport中查看所有登录用户的所有会话,并希望能够查看当前登录的用户。什么是最好最快的方法 我在想,也许我可以在登录时这样做,并将用户模型db‘online’布尔变量更新为true。然后我可以对用户运行检查。find()for online=true 但是,在用户注销或会话结束时,我将如何检查这一点 除非有一种更简单的方法不向数据库写入数据 我最终希望用户保留选择不在线查看的选项。如果使用快速会话(如果存储为默认值:内存存储),您可以从请求对象获取存储对象和会话数

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

我在想,也许我可以在登录时这样做,并将用户模型db‘online’布尔变量更新为true。然后我可以对用户运行检查。find()for online=true

但是,在用户注销或会话结束时,我将如何检查这一点

除非有一种更简单的方法不向数据库写入数据


我最终希望用户保留选择不在线查看的选项。

如果使用快速会话(如果存储为默认值:内存存储),您可以从请求对象获取存储对象和会话数组:

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"}}' 
}             

用户passport道具中的值是MongoDB用户集合中用户的id

一个简单的方法是使用模块。对我来说,用户属性是用户电子邮件(用户名),这是怎么回事?我怎样才能把它改成id呢?顺便说一下,它不是在线用户,而是登录用户。意味着如果您登录并离开页面,您的会话仍将在会话存储中