fixed reset email url bug

This commit is contained in:
David Baldwynn 2015-11-12 15:22:58 -08:00
parent fc35dd4f2d
commit cb5e3e715f
8 changed files with 24 additions and 10 deletions

View file

@ -60,7 +60,7 @@ exports.forgot = function(req, res, next) {
res.render('templates/reset-password-email', {
name: user.displayName,
appName: config.app.title,
url: 'http://' + req.headers.host + '/auth/reset/' + token
url: req.protocol+'://' + req.hostname + '/#!/auth/reset/' + token
}, function(err, emailHTML) {
done(err, emailHTML, user);
});

View file

@ -21,8 +21,8 @@ module.exports = function(app) {
// Setting up the users password api
app.route('/users/password').post(users.requiresLogin, users.changePassword);
app.route('/auth/forgot').post(users.forgot);
app.route('/auth/reset/:token').get(users.validateResetToken);
app.route('/auth/reset/:token').post(users.reset);
app.route('/auth/password/:token').get(users.validateResetToken);
app.route('/auth/password/:token').post(users.reset);
// Setting up the users authentication api
app.route('/auth/signup').post(users.signup);

View file

@ -61,7 +61,7 @@
</head>
<body ng-cloak>
<div class="github-fork-ribbon-wrapper right-bottom hidden-xs hidden-sm">
<div class="github-fork-ribbon-wrapper right-bottom hidden-xs">
<div class="github-fork-ribbon">
<a href="https://github.com/whitef0x0/nodeforms">Fork me on GitHub</a>
</div>

View file

@ -36,7 +36,7 @@ angular.module(ApplicationConfiguration.applicationModuleName).run(['$rootScope'
console.log('toState: '+toState.name);
//Redirect to listForms if user is authenticated
if(toState.name === 'home' || toState.name === 'signin' || toState.name === 'resendVerifyEmail' || toState.name === 'verify' || toState.name === 'signup' || toState.name === 'signup-success'){
if(toState.name === 'home' || toState.name === 'signin' || toState.name === 'resendVerifyEmail' || toState.name === 'verify' || toState.name === 'signup' || toState.name === 'signup-success' || toState.name.slice(0,5) === 'reset' || toState.name === 'forgot'){
if(Auth.isAuthenticated()){
event.preventDefault(); // stop current execution
$state.go('listForms'); // go to listForms page

View file

@ -23,6 +23,7 @@ angular.module('users').controller('PasswordController', ['$scope', '$stateParam
$scope.success = $scope.error = null;
User.resetPassword($scope.passwordDetails, $stateParams.token).then(
function(response){
console.log(response);
// If successful show success message and clear form
$scope.success = response.message;
$scope.passwordDetails = null;
@ -31,6 +32,7 @@ angular.module('users').controller('PasswordController', ['$scope', '$stateParam
$state.go('reset-success');
},
function(error){
console.error(error);
$scope.error = error.message || error;
$scope.passwordDetails = null;
}

View file

@ -81,11 +81,23 @@ angular.module('users').factory('User', ['$window', '$q', '$timeout', '$http', '
return deferred.promise;
},
validateResetToken: function(token) {
var deferred = $q.defer();
$http.get('/auth/password/'+token).success(function(response) {
deferred.resolve(response);
}).error(function(error) {
deferred.reject(error.message || error);
});
return deferred.promise;
},
resetPassword: function(passwordDetails, token) {
var deferred = $q.defer();
$http.get('/auth/password/'+token, passwordDetails).success(function(response) {
deferred.resolve();
$http.post('/auth/password/'+token, passwordDetails).success(function(response) {
deferred.resolve(response);
}).error(function(error) {
deferred.reject(error.message || error);
});

View file

@ -26,7 +26,7 @@
</div>
<div class="form-group">
<label for="username">Account Email</label>
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="Username">
<input type="email" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="Username">
</div>
<div class="form-group">
<label for="password">Password</label>

View file

@ -27,11 +27,11 @@
</div>
<div class="form-group">
<label for="firstName">First Name</label>
<input type="text" required id="firstName" name="firstName" class="form-control" data-ng-model="credentials.firstName" placeholder="First Name">
<input type="text" required id="firstName" name="firstName" class="form-control" data-ng-model="credentials.firstName" placeholder="First Name" ng-pattern="/^[a-zA-Z0-9 \-.]$/">
</div>
<div class="form-group">
<label for="lastName">Last Name</label>
<input type="text" id="lastName" name="lastName" class="form-control" data-ng-model="credentials.lastName" placeholder="Last Name">
<input type="text" id="lastName" name="lastName" class="form-control" data-ng-model="credentials.lastName" placeholder="Last Name" ng-pattern="/^[a-zA-Z0-9 \-.]$/">
</div>
<hr>
<div class="form-group">