AngularJS忘记密码

时间:2015-10-03 04:07:09

标签: javascript angularjs node.js

我忘记了密码表单,当用户输入电子邮件时,它会点击后端并向用户发送电子邮件链接,如下所示。

enter image description here

用户点击链接,该链接调用后端服务。如何通过angular控制此网址?所以,基本上这会调用后端资源,但我希望这个url也能在前端处理。

如果这个问题不是那么清楚,任何人都可以向我展示一个在AngularJS和NodJs或任何后端忘记密码实现的例子。

1 个答案:

答案 0 :(得分:5)

如果您可以更改电子邮件中的链接,请按以下方式更改:

http://localhost:3000/#/resetpassword/<token>

现在,在您的角度路线中,您需要按照以下方式收听此路线:

angular.module('myApp', ['ngRoute'])

 .controller('ResetPasswordController', function($scope, $route, $routeParams, $location) {
     //password resetting functionality
 })
.config(function($routeProvider, $locationProvider) {
  $routeProvider
   .when('/resetpassword/:token', {
    templateUrl: 'reset.html',
    controller: 'ResetPasswordController',
    resolve: {
      // Call the backend service to check if the token is valid
      verifyToken: function($q, $route) {
        var deferred = $q.defer();
        $http({
          method: 'GET',
          url: '/reset/' + $route.current.params.token
        }).success(function (data) {
           deferred.resolve(data);
        }).error(function (msg) {
          deferred.reject(msg);
        });

        return deferred.promise;
      }
    }
  })
});