diff --git a/src/libs/models/user.js b/src/libs/models/user.js new file mode 100644 index 0000000000000000000000000000000000000000..30cfe93a572eee1831db771c6c123d6fc8f651f5 --- /dev/null +++ b/src/libs/models/user.js @@ -0,0 +1,46 @@ +var mongoose = require('mongoose'); +var Schema = mongoose.Schema; +var bcrypt = require('bcrypt'); + +var UserSchema = new Schema({ + email:{ + type: String, + required: true + }, + password: { + type: String, + required: true + } +}); + +UserSchema.pre('save', function(next){ + var user = this; + if(this.isModified('password') || this.isNew){ + bcrypt.genSalt(10, function (err, salt){ + if(err){ + return next(err); + } + bcrypt.hash(user.password, salt, function(err, hash){ + if(err){ + return next(err); + } + user.password = hash; + next(); + }); + }); + } + else{ + return next(); + } +}); + +UserSchema.methods.comparePassword = function(passw, cb){ + bcrypt.compare(passw, this.password, function(err, isMatch){ + if(err){ + return cb(err); + } + cb(null, isMatch) + }); +}; + +module.exports = mongoose.model('User', UserSchema);