背景:我仍在学习使用MEAN堆栈构建Web应用程序。
问题:我发现以下令人困惑。假设我有一个用户登录(我正在使用Passport.js)。从Angular中,我可以查询Node.js服务器来检索它。我现在正在做的事情类似于:
app.get('/userLogged',function(req,res){
res.json({req.user});
});
这对我来说听起来并不安全。我可能是新手,但我在许多教程中都看到了这一点。使用console.log
浏览器中的,我可以打印有关用户的所有信息,包括哈希密码。我的猜测是,我应该向浏览器发送最少的信息集,以过滤掉其余信息。
我的问题:这是否完全安全,还是我只是向黑客敞开大门?
看看的概念ViewModel
。它代表您要与系统的外部用户公开共享的数据。
根据您的情况,可以在内部存储的数据模型中实现正确的视图模型。一个简单的例子说明了这个概念,那就是为您的user
对象创建一个视图模型,该模型将选择您想发回的数据:
// This function will return a different version
// of the `user` object having only a `name`
// and an `email` attribute.
var makeViewModel = function (user) {
return _.pick(user, ['name', 'email']);
}
然后,您将能够按需构建正确的视图模型:
app.get('/user',function (req,res){
res.json(makeViewModel(req.user));
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句