|
|
/* 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); }); }
});
|