Question

Je suis à l'aide de nodejs bibliothèque scrypt de hachage mes mots de passe.

scrypt.hash(new Buffer(data.password), scryptParameters, function(err, res) {
  console.log(res);
  //scrypt.verify(res, "incorrect password");
});

ce qui fonctionne parfaitement.Mais, le problème est quand je décommentez la ligne pour vérifier le hachage (je l'ai mis dans la même fonction (et syncronously) juste pour le plaisir de la simplicité)

Le script ne se bloque sans erreurs!c'est ce que j'obtiens dans la console

/Users/foo/Documents/nodejs/wow/models/user.js:44
    scrypt.verify(res, "incorrect password");
           ^
[object Object]
31 Jul 10:26:52 - [nodemon] app crashed - waiting for file changes before starting...

aussi, il semble que comme il est en train d'essayer de mettre une sorte d'objet, qui est [object Object].Je ne suis pas de la console.journal avec elle, comme je ne reçois rien dans la console avant de décommenter cette ligne.

Quelqu'un a le même problème?Merci à l'avance.

Était-ce utile?

La solution

Le problème est que vous utilisez la mauvaise la clé de codage pour scrypt.verify().Par défaut, il s'attend à un Tampon, mais vous êtes à la fourniture d'une chaîne de caractères.Soit changer la "incorrect password" pour être un Tampon ou faire cela:

scrypt.hash(new Buffer(data.password), scryptParameters, function(err, res) {
  scrypt.verify.config.keyEncoding = "utf8";
  scrypt.verify(res, "incorrect password");
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top