我实际上是在尝试在我的 feathersjs 项目中实现更改密码功能。基本上我想做的是,我正在接收来自用户的输入(旧密码和新密码),首先我必须将这个旧密码的哈希值与已经存储在数据库中的密码的哈希值进行比较,但是当我生成用户提供的这个旧密码字段的哈希(使用 hashPassword() 钩子)并将其与数据库中的密码哈希进行比较,即使我使用相同的密码(纯文本密码)。这里的问题是,当我使用这个 hashPassword() 函数时,我得到了相同字符串的不同哈希值(因为它在内部使用了盐)。所以我无法比较密码哈希。那么,是否有一个功能或类似的东西,
> async function checkPassword(context) {
> //already hashed. I also have the plain text of this string
> const oldPassword = context.data.oldPassword;
> // const newPassword = context.data.newPassword;
> //get the current logged-in users password(hash) from
> //database
> const user = await app.service('users').get(context.id);
> console.log('DB: ', user.password);
>
> if (oldPassword === user.password) {
> //allowed to change password
> return true;
>
>
> } else {
> //not allowed to change password
> return false;
> }
>
> }