如何在当前页面上显示用户?

时间:2017-04-26 18:03:43

标签: javascript node.js express websocket passport.js

例如,我有一个带有网址“/ foo”的网页,我需要在此页面上显示经过身份验证的用户昵称。是否有任何默认的node.js / passport功能,或者我需要将此页面的每个用户添加到数据库并使用websockets显示它?

用户架构:

var userSchema = new Schema({
    email: {type: String, required: true, unique: true },
    password: {type: String, required: true },
    nickname: { type: String, default: 'User'},
    createdAt: { type: Date, default: Date.now }
});

检查用户是否已登录:

function isLoggedIn(req, res, next) {
    if (req.isAuthenticated()) {
        return next();
    }
    req.session.oldUrl = req.url;
    res.redirect('/');
}

1 个答案:

答案 0 :(得分:0)

这就是我在托管故事的服务中解决此问题的方法。我必须在当前故事页面上显示用户数量及其名称。我想使解决方案足够简单,所以我决定在SQL中使用一个简单的表。

在一个只有一列的SQL表中,我存储了PAGE_{PAGEID}_USER_{USERID}

对于用户获取的每个页面,我都在此表上添加了一个条目,并用正则表达式PAGE_{PAGEID}_USER_(.*)查询表列,并在当前时间少于1分钟的情况下使用了。

这将为您提供过去1分钟内当前页面上的用户ID。

PS:正确的方法是在宽列存储中执行相同的操作