我已经实施了卫星(https://github.com/sahat/satellizer)作为我的身份验证。我想要的是(https://github.com/fnakstad/angular-client-side-auth)访问级别和角色权限的方法,基于此:
我在服务器端的userSchema中添加了一个角色字段。我如何实现这样的系统来检查经过身份验证的用户具有哪个角色,然后使用它来显示/保护app.js的stateprovider中的某些路由? 我已经尝试实施这一段时间而没有任何进展。
编辑: 检查链接@paul链接后,这是我到目前为止所做的。
.state('admin', {
url: '/admin',
template: 'Scripts/App/partials/admin.html',
controller: 'AdminCtrl',
resolve: {
security: ['$q', function ($q) {
if(!isAdmin()) {
return $q.reject('Not Authorized');
}
}]
}
})
function isAdmin($http, $scope) {
$http.get('http://localhost:3000/api/isadmin')
.success(function (response) {
$scope.role = response.data.role;
console.log($scope.role);
});
if ($scope.role == 'admin') {
console.log($scope.role);
return true;
}
else {
return false;
}
}
App.run(['$rootScope', function ($rootScope) {
$rootScope.$on('$stateChangeError', function (e, toState, toParams, fromState, fromParams, error) {
if (error === "Not Authorized") {
$state.go("notAuthorizedPage");
}
});
}]);
这些都在app.js中,这就是我被困的地方。我做错了什么?