Mangouste hachage de mot de passe
Je suis à la recherche d'un bon moyen d'économiser un Compte de MongoDB à l'aide de la mangouste.
Mon problème est le suivant: Le mot de passe est hashé en mode asynchrone. Un setter ne fonctionnent pas ici, car il ne fonctionne qu'synchrone.
J'ai pensé à 2 manières:
-
Créer une instance du modèle et l'enregistrer dans le rappel de la
fonction de hachage. -
La création d'un pré crochet sur "enregistrer"
Est-il une bonne solution à ce problème?
Vous devez vous connecter pour publier un commentaire.
Mongodb blog a un excellent article expliquant en détail comment mettre en œuvre l'authentification de l'utilisateur.
http://blog.mongodb.org/post/32866457221/password-authentication-with-mongoose-part-1
Ce qui suit est copié directement à partir du lien ci-dessus:
Utilisateur Modèle
Utilisation
Je pense que c'est un bon moyen par utilisateur de la Mangouste et bcrypt!
Modèle Utilisateur
D'utilisation
Résultat
Résultat
La Mangouste officiel de la solution nécessite le modèle doit être enregistré avant à l'aide de la verifyPass méthode, qui peut causer de la confusion. L'exemple suivant pour vous? (Je suis en utilisant scrypt au lieu de bcrypt).
Pour ceux qui sont prêts à utiliser ES6+ syntaxe pouvez utiliser cette -
Je suppose que ce serait mieux d'utiliser le crochet, après quelques recherches, j'ai trouvé
http://mongoosejs.com/docs/middleware.html
où il est dit:
Cas D'Utilisation:
asynchrone par défaut
Je préfère cette solution car je peux encapsuler ce et de s'assurer qu'un compte ne peut être enregistré avec un mot de passe.
Une autre façon de faire cela en utilisant virtuals et les méthodes d'instance:
Il suffit d'enregistrer votre modèle comme, le virtuel va faire son travail.
JS:
JS: