Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <div class="row">
- <div class="col-md-12">
- {{#if errorMessage}}
- <div class="alert alertdanger"><strong>Error:</strong> {{errorMessage}}</div>
- {{/if}}
- {{#if successMessage}}
- <div class="alert alert-success"> <strong>Success:</strong> {{successMessage}}</div><a class="btn btn-success pull-right" href="/login"> Proceed to Log in </a><br /><br /><br />
- {{else}}
- <form method="post" action="/register">
- <fieldset>
- <legend>Register</legend>
- <div class="col-md-12">
- <div class="form-group">
- <input class="form-control" id="userName" name="userName" type="text" placeholder="User Name" required />
- </div>
- </div>
- <div class="col-md-12">
- <div class="form-group">
- <input class="form-control" id="password" name="password" type="password" placeholder="Password" required />
- </div>
- </div>
- <div class="col-md-12">
- <div class="form-group">
- <input class="form-control" id="password2" name="password2" type="password" placeholder="Confirm Password" required />
- </div>
- </div>
- <div class="col-md-12">
- <div class="form-group">
- <input class="form-control" id="email" name="email" type="email" placeholder="Email Address" required />
- </div>
- </div>
- </fieldset>
- <input type="submit" class="btn btn-success pull-right" value="Register" />
- </form>
- {{/if}}
- </div>
- </div>
- module.exports.registerUser = function (userData) {
- return new Promise(function (resolve, reject) {
- if(userData.password !== userData.password2) {
- reject("Passwords do not match.");
- }
- else
- {
- //hash the password
- bcrypt.genSalt(10, function(err, salt) { // Generate a "salt" using 10 rounds
- bcrypt.hash(userData.password, salt, function(err, hash) {
- if(err) {
- reject("There was an error encrypting the password.");
- }
- else {
- userData.password = hash;
- //create new User
- let newUser = new User(userData);
- //save the user, if there was an error return it
- newUser.save((err) => {
- if(err) {
- if(err.code === 11000)
- reject("Username already taken");
- if(err.code !== 11000)
- reject("There was an error: " + err);
- }
- else {
- console.log("The User was saved to the web322_a6 schema.");
- resolve();
- }
- });
- }
- });
- });
- }
- });
- };
- module.exports.checkUser = function(userData) {
- return new Promise(function (resolve, reject) {
- User.findOne({userName: userData.userName})
- .exec()
- .then((users) => {
- //if array is empty
- if(!users) {
- reject("Unable to find user: " + userData.userName);
- }
- //if passwords dont match
- bcrypt.compare(userData.password, users.password).then((res) => {
- // res === true if it matches and res === false if it does not matc
- if(res === false) {
- reject("Incorrect Password for user: " + userData.userName);
- }
- //if passwords match
- if(res === true) {
- //create new login history object to put into users login history
- var lastLogin = {dateTime: (new Date()).toString(), userAgent: userData.userAgent};
- users.loginHistory.dateTime = lastLogin.dateTime;
- users.loginHistory.userName = lastLogin.userAgent;
- User.update({userName: users.userName},
- {$set: {loginHistory: users.loginHistory}})
- .then(() => {
- resolve(users[0]);
- })
- .catch((err) => {
- reject("There was an error verifying the user: " + err);
- });
- }
- });
- })
- .catch((err) => {
- console.log(err);
- reject("Unable to find user: ///" + userData.userName);
- });
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement