Guest User

Untitled

a guest
Jan 21st, 2018
421
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. var mongoose = require("mongoose")
  2. var uniqueValidator = require("mongoose-unique-validator");
  3. var crypto = require("crypto");
  4. var userSchema = new mongoose.Schema(
  5. {
  6. name : {
  7. type : String,
  8. required : [true , 'cant be blank'],
  9. unique : true,
  10. match : [/^[a-zA-Z0-9]+$/ , "is invalid"],
  11. index : true
  12. },
  13. email : {
  14. type : String,
  15. unique : true,
  16. required : [true , 'cant be blank'],
  17. index : true
  18. },
  19. salt : String,
  20. password_hash : String
  21. } , { timestamps : true });
  22.  
  23. userSchema.plugin(uniqueValidator , {message : "already taken"});
  24.  
  25. userSchema.methods.setPassword = function(password)
  26. {
  27. this.salt = crypto.randomBytes(15).toString('hex');
  28. //console.log(this.salt);
  29. this.hash = crypto.pbkdf2Sync(password, this.salt, 10000, 512, 'sha512').toString('hex');
  30.  
  31. //console.log(this.hash);
  32. }
  33. userSchema.methods.checkPassword = function(password)
  34. {
  35. var hash = crypto.pbkdf2Sync(password, this.salt, 10000, 512, 'sha512').toString('hex');
  36. return this.hash == hash;
  37. }
  38.  
  39. var User = module.exports = mongoose.model("User" , userSchema);
  40.  
  41. //route for Signup
  42.  
  43.  
  44. router.get("/signup" , function(req,res)
  45. {
  46. res.render('signup.html');
  47. });
  48. router.post('/signup' , function(req,res)
  49. {
  50. var name = req.body.name;
  51. var email = req.body.email;
  52. var password = req.body.password;
  53. var verify = req.body.verify;
  54. if(!name || !email || !password || !verify || password != verify)
  55. {
  56. var passwordError;
  57. if(password != verify)
  58. passwordError = 'Password are not matching';
  59. res.render('signup.html' , { 'Error' : 'Invalid Details' , 'name' : name , 'email' : email , 'passwordError' : passwordError});
  60. return;
  61. }
  62.  
  63. var newUser = User(
  64. {
  65. name : name,
  66. email : email
  67.  
  68. });
  69. newUser.setPassword(password);
  70. newUser.save(function(err)
  71. {
  72. if(err)
  73. {
  74. //console.log("Database Error:%s" , err);
  75. console.log(err);
  76. // Even after using return statement the code below this
  77. // statement is being executed . I dont know why?
  78. return res.status(500).send({success : false , message : 'User already exists'});
  79. }
  80.  
  81. });
  82. console.log("here");
  83.  
  84. req.session.user = newUser;
  85. console.log(newUser);
  86. res.redirect('/newpost');
  87. });
Add Comment
Please, Sign In to add comment