|
|
@ -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); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
}); |