Advertisement
Guest User

Untitled

a guest
Mar 31st, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. passport.use('local-signup', new LocalStrategy({
  2. usernameField: 'email',
  3. passwordField: 'password',
  4. session: false
  5. },
  6. function(email, password, done) {
  7. process.nextTick(function() {
  8. User.findOne({
  9. email: email.toLowerCase()
  10. }, function(err, user) {
  11. if (err) {
  12. return done(err);
  13. } else {
  14. if (user) {
  15. return done(null, false);
  16. } else {
  17.  
  18. // Create new user if email does not exist
  19. var newUser = new User();
  20.  
  21. // set the user's local credentials
  22. newUser.email = email;
  23. newUser.password = newUser.generateHash(password);
  24.  
  25. // save the user
  26. newUser.save(function(err) {
  27. if (err) {
  28. console.log('throwing error: ' + err);
  29. throw err;
  30. }
  31. console.log('the new user: ' + newUser);
  32. return done(null, newUser);
  33. });
  34. }
  35. }
  36. });
  37. });
  38. }
  39. ));
  40.  
  41. var mongoose = require('mongoose'),
  42. Schema = mongoose.Schema,
  43. passportLocalMongoose = require('passport-local-mongoose'),
  44. bcrypt = require('bcrypt-nodejs'),
  45. ObjectId = Schema.ObjectId;
  46.  
  47. var UserSchema = new Schema({
  48. id: String,
  49. email: String,
  50. password: String,
  51. dateRegistered: { type: Date, 'default': Date.now }
  52. });
  53.  
  54. UserSchema.methods.generateHash = function(password) {
  55. return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
  56. };
  57.  
  58. // checking if password is valid
  59. UserSchema.methods.validPassword = function(password) {
  60. return bcrypt.compareSync(password, this.local.password);
  61. };
  62.  
  63. UserSchema.plugin(passportLocalMongoose);
  64.  
  65. module.exports = mongoose.model('User', UserSchema);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement