@ -0,0 +1,90 @@ |
|||||
|
/* |
||||
|
script to reset password for a user |
||||
|
*/ |
||||
|
|
||||
|
var config = require('./config'); |
||||
|
var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
|
||||
|
var crypto = require('crypto'); |
||||
|
|
||||
|
var mongoose = require('mongoose'); |
||||
|
|
||||
|
mongoose.Promise = global.Promise; |
||||
|
// Connection to DB
|
||||
|
mongoose.connect(config.database, function(err, res) { |
||||
|
if (err) { |
||||
|
console.log(err); |
||||
|
}; |
||||
|
console.log('Connected to Database'); |
||||
|
}); |
||||
|
|
||||
|
var userMdl = require('./models/userModel'); |
||||
|
var userModel = mongoose.model('userModel'); |
||||
|
|
||||
|
var readlineSync = require('readline-sync'); |
||||
|
|
||||
|
|
||||
|
|
||||
|
console.log("Welcome to Common Routes"); |
||||
|
console.log("----------"); |
||||
|
console.log("This is the resetPassword.js"); |
||||
|
|
||||
|
|
||||
|
var username = readlineSync.question('Enter the username: '); |
||||
|
if ((username == "")) { |
||||
|
console.log("username can't be empty"); |
||||
|
process.exit(0); |
||||
|
} |
||||
|
|
||||
|
console.log('Hi ' + username + '!'); |
||||
|
|
||||
|
|
||||
|
var clearPassword = readlineSync.question('Enter the new password: ', { |
||||
|
hideEchoBack: true // The typed text on screen is hidden by `*` (default).
|
||||
|
}); |
||||
|
var clearPassword2 = readlineSync.question('Enter the new password again: ', { |
||||
|
hideEchoBack: true // The typed text on screen is hidden by `*` (default).
|
||||
|
}); |
||||
|
if (clearPassword != clearPassword2) { |
||||
|
console.log("passwords don't match"); |
||||
|
process.exit(0); |
||||
|
} |
||||
|
if (clearPassword == "undefined") { |
||||
|
console.log("Password can't be empty"); |
||||
|
process.exit(0); |
||||
|
} |
||||
|
/*if (clearPassword.length < 10) { |
||||
|
console.log("Please, choose a password with more than 10 characters"); |
||||
|
process.exit(0); |
||||
|
}*/ |
||||
|
|
||||
|
|
||||
|
var newPassword = crypto.createHash('sha256').update(clearPassword).digest('base64') |
||||
|
console.log(newPassword); |
||||
|
userModel.findOne({ |
||||
|
username: username |
||||
|
}) |
||||
|
.select('+password') |
||||
|
.exec(function(err, user) { |
||||
|
if (err) { |
||||
|
console.log(err); |
||||
|
process.exit(0); |
||||
|
} |
||||
|
console.log(user); |
||||
|
|
||||
|
if (!user) { |
||||
|
console.log("user not found"); |
||||
|
process.exit(0); |
||||
|
} else if (user) { |
||||
|
user.password = newPassword; |
||||
|
user.save(function(err, user) { |
||||
|
if (err) { |
||||
|
console.log(err); |
||||
|
process.exit(0); |
||||
|
} |
||||
|
|
||||
|
console.log("password successfully changed"); |
||||
|
process.exit(0); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
}); |