我已经下载了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-登录后,用户对象存放在客户端的某个位置?如果是肯定的在哪里?它有所有的结果吗?
答案 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;
});
}
};