用户成功登录时的Angular.js路由?

时间:2015-05-23 22:57:50

标签: javascript angularjs node.js login

我正在关注此帖https://medium.com/opinionated-angularjs/techniques-for-authentication-in-angularjs-applications-7bbf0346acec

我已成功向服务器发出POST请求,并且我返回了用户对象。以下服务是发出请求的原因。

我不明白我可以在哪里路由到仪表板。

/**
 * Authentication service via medium post Service
 *
 */
.factory('AuthService', function ($http, Session, ApiEndpoint) {
  var authService = {};

  authService.login = function (credentials) {
    console.log(credentials)
    return $http
      .post('/api/login', credentials)
      .then(function (res) {
        console.log(res.data);
        Session.create(res.data._id, res.data.email);
        return res.data;
      });
  };

  authService.signup = function (credentials) {
    console.log(credentials.username)
    return $http
      .post('/api/signup', credentials)
      .then(function (res) {
        console.log(res.data);
        Session.create(res.data._id, res.data.email);
        return res.data;
      });
  };

  authService.isAuthenticated = function () {
    return !!Session.userId;
  };

  authService.isAuthorized = function (authorizedRoles) {
    if (!angular.isArray(authorizedRoles)) {
      authorizedRoles = [authorizedRoles];
    }
    return (authService.isAuthenticated() && authorizedRoles.indexOf(Session.userRole) !== -1);
  };

  return authService;
})

我已停用查看信息中心

.state('tab.dash', {
  url: '/dash',
  views: {
    'tab-dash': {
      templateUrl: 'templates/tab-dash.html',
      controller: 'DashController'
    }
  },
  resolve: {
    auth: function resolveAuthentication(AuthResolver) { 
      return AuthResolver.resolve();
    }
  }
})

使用我在Medium帖子上找到的AuthResolver服务

/**
 * AuthResolver service via medium post Service
 *
 */
.factory('AuthResolver', function ($q, $rootScope, $state) {
  return {
    resolve: function () {
      var deferred = $q.defer();
      var unwatch = $rootScope.$watch('currentUser', function (currentUser) {
        if (angular.isDefined(currentUser)) {
          if (currentUser) {
            deferred.resolve(currentUser);
          } else {
            deferred.reject();
            $state.go('user-login');
          }
          unwatch();
        }
      });
      return deferred.promise;
    }
  };
})

所以我得到了大部分内容,但我无法解码实际路由到仪表板的位置?

我正在从backbone.js / marionette.js迁移并且昨天拿起angular.js大声笑所以我是新手,我正在建立离子并且想要利用那个堆栈所以我想看看我能有多快获得角度的.js

0 个答案:

没有答案