3 votes

Lancement d'un message "arguments incorrects" par bcrypt-nodejs - Passport

J'ai mis en place un système de connexion pour mon application Node.js. Récemment, j'ai apporté une modification à mon modèle d'utilisateur (CoffeeScript) :

password: String

à

password:
        type: String
        select: false

Ma fonction pour comparer les hachages de mots de passe avec bcrypt est la suivante :

userSchema.methods.validPassword = (password) ->
        bcrypt.compareSync password, @local.password

Maintenant, à chaque fois que j'exécute la fonction ci-dessus, l'erreur suivante se produit

Incorrect arguments

Quelqu'un a-t-il une idée de la raison pour laquelle ce problème se produit après que j'ai ajouté "select : false" à mon modèle utilisateur ?

0voto

kytwb Points 781

Ce message est lancé si password ou @local.password n'est pas une chaîne de caractères. Cela m'est arrivé alors que j'essayais d'appeler la méthode d'instance sur une instance qui n'incluait pas @local.password dans les attributs chargés.

0voto

Cliff Stanford Points 11
userSchema.methods.validPassword = (password) ->
  bcrypt.compareSync password, @local.password

En supposant que c'est dans une classe, vous aurez besoin de => plutôt que -> afin que @local pour travailler.

-1voto

Prashant Rawat Points 1

Vérifiez si la valeur du mot de passe est remplie. Si vous sélectionnez false, la valeur du mot de passe ne sera pas récupérée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X