检查登录角色

时间:2015-10-16 08:04:51

标签: javascript angularjs node.js local

我已经下载了yeoman angular fullstack,它附带了登录的基本配置。

代码如下:

$scope.login = function(form) {
  $scope.submitted = true;
  if(form.$valid) {
    Auth.login({
      email: $scope.user.email,
      password: $scope.user.password
    })
    .then( function() {
     $scope.users = User.query();
      // Logged in, redirect to home
    $state.go('backend', {});
    })
    .catch( function(err) {
      $scope.errors.other = err.message;
    });
  }
};

我想要的是在登录期间检查角色并根据它重定向他。我尝试使用这段代码,但总是返回false。

          if(Auth.isAdmin()){
       $state.go('backend', {});
      }else{
       $state.go('backend', {});
      }

所以,我有一个问题:

1-登录后,用户对象存放在客户端的某个位置?如果是肯定的在哪里?它有所有的结果吗?

1 个答案:

答案 0 :(得分:0)

您可以在问题here

上找到答案

请注意,currentUser未立即设置。所以这里有两种与之斗争的方式。在我的项目中,我们也使用第一个:

  if(form.$valid) {
    Auth.login({
      email: $scope.user.email,
      password: $scope.user.password
    })
    .then( function() {
      // need to wait until currentUser will set
      Auth.isLoggedInAsync(function(success) {
        var role = Auth.getCurrentUser().role
        console.log("Role of user is: " + role);
        if(role == 'admin'){
           $state.go('adminpage', {});
        }else{
           $state.go('userpage', {});
        }
      });
    })
    .catch( function(err) {
      $scope.errors.other = err.message;
    });
  }
};