例如,我有一个带有网址“/ 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('/');
}
答案 0 :(得分:0)
这就是我在托管故事的服务中解决此问题的方法。我必须在当前故事页面上显示用户数量及其名称。我想使解决方案足够简单,所以我决定在SQL中使用一个简单的表。
在一个只有一列的SQL表中,我存储了PAGE_{PAGEID}_USER_{USERID}
。
对于用户获取的每个页面,我都在此表上添加了一个条目,并用正则表达式PAGE_{PAGEID}_USER_(.*)
查询表列,并在当前时间少于1分钟的情况下使用了。
这将为您提供过去1分钟内当前页面上的用户ID。
PS:正确的方法是在宽列存储中执行相同的操作