Mon modèle utilisateur estBookshelf.js est en train de changer le mot de passe à chaque mise à jour des données en utilisant bcrypt
var Bookshelf = require('../../db').bookshelf;
var bcrypt = require('bcrypt');
var Promise = require('bluebird');
var Base = require('./../helpers/base');
// User model
var User_Model = Bookshelf.Model.extend({
tableName: 'users',
initialize: function() {
this.on('saving', this.hashPassword, this);
},
hashPassword: function(model, attrs, options) {
return new Promise(function(resolve, reject) {
bcrypt.hash(model.attributes.password, 10, function(err, hash) {
if(err) reject(err);
model.set('password', hash);
resolve(hash); // data is created only after this occurs
});
});
}
});
Lors de la création à l'utilisateur le mot de passe est défini sur
$2a$10$QD6FmChgGZEMooCklLfemOvAaHHV2RfUMQ5EoNwuMeojb6y2Hh2iK
et fonctionne parfaitement sur la connexion,
Lorsqu'une mise à jour est faite au champ utilisateur, il provoque le mot de passe à chaque fois que le changement de valeur aléatoire
$2a$10$IVW.2JN/TPVABsx73t870uwKMNsDKoGmLJzOs1y/MPMOe.WRMBL4W
$2a$10$12sjEqM3t345dcq7rDixgu.9TZiWOC.JN5Ke8SI2F0IXv/YpdRwTK
Sur une note de côté - vous devriez vérifier async/await dans nodejs 8.0. Plutôt que d'utiliser Promise de la façon dont vous utilisez async/await, c'est une syntaxe plus concise qui rend le code plus facile à lire. Quelques liens : [lien ici] (https://hackernoon.com/6-reasons-why-javascripts-async-await-blows-promises-away-tutorial-c7ec10518dd9) [lien Promisifying-core-bibliothèques ] (https://medium.com/front-end-hacking/promises-in-node-js-8-x-core-d6a8a93e85a2) – j10