【发布时间】:2017-04-26 18:03:42
【问题描述】:
例如,我有一个 url 为“/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('/');
}
【问题讨论】:
-
您可以在用户登录时将用户昵称添加到快递'
req,然后连同所有后续回复一起发送。 -
@promisified,我知道如何只添加一个当前用户“req.user.username”,但是如何在此页面上添加其他用户?
-
您也许可以使用本地数组并将其与所有后续响应一起发送?所以基本上每次用户登录时都会将昵称放入数组中,然后发送数组。只是一个想法。
-
假设您将用户会话存储在 MongoDB 中,您能否发布会话集合的架构
-
@Dan Green-Leipciger 完成。
标签: javascript node.js express websocket passport.js