0

私は実際に私の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;
>       }
>     
>     }
4

0 に答える 0