【发布时间】:2019-05-22 15:48:55
【问题描述】:
我正在尝试获取管理员的哈希密码。
我尝试对密码进行哈希处理,但未能将其插入到用户对象中。
import encryptor from '../helpers/password';
let hashed_pswd = 'john123';
const hashPassword= async () => {
const adminPwd = await encryptor.encryptPassword(hashed_pswd, 10);
console.log(adminPwd);
}
hashPassword();
export default [
{
id: 1,
first_name: 'john',
last_name: 'doe',
email: 'john@gmail.com',
password: adminPwd,
address: 'kigali',
is_admin: true
}
]
我能够在控制台中记录散列密码,但是当我尝试发送 POST 请求时,我发现 adminPwd 没有定义。
提前谢谢你。
【问题讨论】:
-
我不是 Javascript 人,但我猜测
adminPwd的范围是hashPassword函数。我希望您从该方法返回散列密码。 (我还会更改hashed_pswd变量的名称,因为它是 not 散列的 - 这是纯文本。) -
嗨,John,即使我返回 adminPwd,我也会遇到同样的错误。当我注释掉密码时,我真的能够在控制台中返回一个散列字符串:对象内部的 adminPwd。
-
我认为另一个问题是 hashPassword() 是异步的,但您并没有等待它。因此,它甚至在函数完成之前就尝试填充该值。同样在里面你调用了一个名为 encryptPassword 的方法......你意识到散列和加密不是一回事??
标签: javascript node.js express