【发布时间】:2017-01-07 22:39:45
【问题描述】:
我想创建一个混合移动应用程序,其中后端是 Node js,它将数据保存在 mongodb 中。我的服务器工作正常,我准备了处理用户请求的路由。
我正在使用 bcrypt 在 mongodb 中存储密码哈希。密码保存正确,但我的问题是我无法检索真正的密码,例如,当管理员将 GET 请求传递给节点 js 服务器以获取用户数据时,他在前端获得了哈希密码。
这是前端的结果:
这是存储密码哈希的代码:
UserSchema.pre('save', function (next) {
var user = this;
if (this.isModified('password') || this.isNew) {
bcrypt.genSalt(10, function (err, salt) {
if (err) {
return next(err);
}
bcrypt.hash(user.password, salt, function (err, hash) {
if (err) {
return next(err);
}
user.password = hash;
next();
});
});
} else {
return next();
}
});
请问如何找回真实密码?
【问题讨论】:
-
存储散列密码的关键在于您无法恢复原始密码。
-
不要尝试找回密码,您可以提供密码,加密并与已保存的密码匹配。
标签: angularjs node.js mongodb express bcrypt