如何确定哪个用户已在快速js应用程序中登录?我想确定谁在我的服务器程序中发送请求。
答案 0 :(得分:1)
您可以使用req.user
exports.some_method = function(req, res) {
var user = req.user;
//do something
};
但您必须使用users.requiresLogin
来保留用户
app.route('/model/:modelId').get(users.requiresLogin, my_controller.some_method)
它的实现非常简单
exports.requiresLogin = function(req, res, next) {
if (!req.isAuthenticated()) {
return res.status(401).send({
message: 'User is not logged in'
});
}
next();
};
它确实是基于会话的实现,但仍然很好。这就是它
您必须使用能够通过其cookie检测当前用户的中间件
它确实更复杂,你必须编写自己的实现
但是有很多插件,比如护照,会通过你的字段验证用户。也可以序列化为req.user
,反之亦然
但我强烈建议检查MeanJS堆栈实现,这很容易理解。顾名思义,它是MongoExpressAngularNode,所以它是基于表达式的堆栈。
这取决于您使用的是哪种auth架构,如果是REST,那么您必须将所有请求中的令牌传递给服务器,以便服务器检查db并获取具有相应令牌的用户。如果它是基于会话的,那么您可以简单地使用任何基于会话的插件。但是这个想法是一样的,当登录时,将用户序列化为会话表,设置cookie,当接收请求从请求者获取cookie,从会话表反序列化,你现在有用户