특정보기에 대한 액세스를 제한하는 방법에 대해서는 잘 모릅니다. 나는 당신이 전망을 제한해서는 안된다고 생각합니다. api에 대한 액세스를 제한하면됩니다. 따라서 사용자가 프로젝트를 삭제할 수있는 권한이없는 경우. api를 호출하면 서버에서 401을 보내면됩니다. 클라이언트 측에서는 $ http 인터셉터를 사용하여이 401을 처리합니다.
요소를 생성/지침을 액세스 거부 오류가 발생한 경우 :
.controller('ErrorMessageCtrl', function ($scope) {
$scope.error = {}
$scope.$on('error:accessDenied', function(event, message) {
$scope.error.message = message
})
})
는 HTTP 401 인증 오류 처리 할 인터셉터 서비스를 만듭니다
.factory('authErrorInterceptor', function ($q, $rootScope) {
return {
response: function (response) {
return response
},
responseError: function(rejection) {
if (rejection.status === 401) {
$rootScope.$broadcast('error:accessDenied', 'Access Denied')
}
return $q.reject(rejection)
}
}
})
은 $ httpProvider에 요격 서비스를 추가
.config(function ($httpProvider, $routeProvider) {
$httpProvider.interceptors.push('authErrorInterceptor')
$routeProvider.when('/project/manhatten/security', {
template: '<div><h1>Secure Page</h1>secure data from server: {{data}}</div>',
controller: 'SecureDataCtrl'
})
})
$ http.get ('/ API/일부/보안/데이터') 401 http 상태 코드를 반환합니다.
.controller('SecureDataCtrl', function ($scope, $http) {
$scope.data = 'none'
$http.get('/project/manhatten/security')
.success(function (data) {
$scope.data = 'secure data'
})
})
10 분 후에 해킹되었습니다. 리팩토링을해야합니다. 오류 알림 서비스를 주입하고 범위에 오류 메시지를 브로드 캐스팅하지 않는 errorMessage 지시문을 작성하는 것과 같습니다.
이보기에 액세스 할 수 있는지 잘 확인해보십시오. 'ng-view' 호출이 아니라면 부분을 찾을 수 없습니다. – Chandermani