这是一个非常开放的问题,但无论我在哪里,我都无法得到直接答案。问题出在标题上但是......
我应该在用户登录时返回用户的加密密码或令牌
额外信息
我正在使用Angular5运行MEAN堆栈应用程序。我为用户使用会话并将其存储在MongoDB中。所以根据我的理解,会话cookie是用来验证用户的扩展会话而不是密码(我没有得到Facebook或Twitter策略,但据我所知,cookie验证用户而不是令牌) Facebook / Twitter给了我正确的答案吗?)。
我确实希望将用户数据传递到我的Angular应用程序并存储在浏览器本地存储中,以便用户进行快速的非服务器端验证。这仅仅是出于审美原因,例如显示用户名和个人资料图片。受限制的POST和GET仍然需要使用护照进行服务器端验证。所以我的问题是,因为会话保存在cookie中,是否有任何理由将密码或令牌发送给用户/浏览器?即使密码是加密的(使用bcrypt),它仍然看起来像是一个不必要的安全漏洞。我将来可能会遇到一个我希望密码存储在浏览器中的原因吗?
答案 0 :(得分:0)
快速答案是“否”,您不应该,也不应该将敏感数据传递回前端。
我通常要做的是,当我返回“用户”对象作为对前端的响应时,我通过一个辅助函数运行该对象,该函数会过滤掉敏感数据,例如加密的密码和盐等。