Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mongoose = require("mongoose")
- var uniqueValidator = require("mongoose-unique-validator");
- var crypto = require("crypto");
- var userSchema = new mongoose.Schema(
- {
- name : {
- type : String,
- required : [true , 'cant be blank'],
- unique : true,
- match : [/^[a-zA-Z0-9]+$/ , "is invalid"],
- index : true
- },
- email : {
- type : String,
- unique : true,
- required : [true , 'cant be blank'],
- index : true
- },
- salt : String,
- password_hash : String
- } , { timestamps : true });
- userSchema.plugin(uniqueValidator , {message : "already taken"});
- userSchema.methods.setPassword = function(password)
- {
- this.salt = crypto.randomBytes(15).toString('hex');
- //console.log(this.salt);
- this.hash = crypto.pbkdf2Sync(password, this.salt, 10000, 512, 'sha512').toString('hex');
- //console.log(this.hash);
- }
- userSchema.methods.checkPassword = function(password)
- {
- var hash = crypto.pbkdf2Sync(password, this.salt, 10000, 512, 'sha512').toString('hex');
- return this.hash == hash;
- }
- var User = module.exports = mongoose.model("User" , userSchema);
- //route for Signup
- router.get("/signup" , function(req,res)
- {
- res.render('signup.html');
- });
- router.post('/signup' , function(req,res)
- {
- var name = req.body.name;
- var email = req.body.email;
- var password = req.body.password;
- var verify = req.body.verify;
- if(!name || !email || !password || !verify || password != verify)
- {
- var passwordError;
- if(password != verify)
- passwordError = 'Password are not matching';
- res.render('signup.html' , { 'Error' : 'Invalid Details' , 'name' : name , 'email' : email , 'passwordError' : passwordError});
- return;
- }
- var newUser = User(
- {
- name : name,
- email : email
- });
- newUser.setPassword(password);
- newUser.save(function(err)
- {
- if(err)
- {
- //console.log("Database Error:%s" , err);
- console.log(err);
- // Even after using return statement the code below this
- // statement is being executed . I dont know why?
- return res.status(500).send({success : false , message : 'User already exists'});
- }
- });
- console.log("here");
- req.session.user = newUser;
- console.log(newUser);
- res.redirect('/newpost');
- });
Add Comment
Please, Sign In to add comment