Advertisement
Guest User

Untitled

a guest
Jan 12th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. var mongoose = require('mongoose');
  2. var bcrypt = require('bcrypt');
  3.  
  4. var UserSchema = new mongoose.Schema({
  5. email: {
  6. type: String,
  7. required: true,
  8. trim: true,
  9. unique: true,
  10. },
  11. name: {
  12. type: String,
  13. required: true,
  14. trim: true,
  15. },
  16. favoriteBook: {
  17. type: String,
  18. required: true,
  19. trim: true
  20. },
  21. password: {
  22. type: String,
  23. required: true
  24. }
  25. });
  26.  
  27. UserSchema.pre('save', function(next) {
  28. var user = this;
  29. bcrypt.hash(user.password, 10, function(err, hash) {
  30. if (err) {
  31. return next(err)
  32. }
  33. user.password = hash;
  34. next();
  35. });
  36. });
  37.  
  38. UserSchema.statics.authenticate = function(email, password, callback) {
  39. User.findOne({ email: email })
  40. .exec(function (error, user) {
  41. if (error) {
  42. return callback(error);
  43. } else if (!user) {
  44. var err = new Error('User not found.');
  45. err.satus = 401;
  46. return callback(err);
  47. }
  48.  
  49. bcrypt.compare(password, user.password , function(error, result) {
  50. if (result === true) {
  51. return callback(null, user);
  52. } else {
  53. return callback();
  54. }
  55. });
  56. });
  57. };
  58.  
  59. var User = mongoose.model('User', UserSchema);
  60. module.exports = User;
  61. module.exports = User;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement