2017-10-25 11 views
1

조회수를 표시하기 위해 ui-router$stateProvider을 사용하고 있습니다.Angularjs에서 일부 페이지에 접근하는 사용자를 차단하는 방법은 무엇입니까?

이 프로젝트는 관리자 페이지를 작성하는 데 사용되며 3 개의 계정이 있습니다.

나의 목적은 일부 계정이 각 계정에만 표시되어야한다는 것입니다.

그래서 ng-if을 사용하여 nav-bar에 표시하지 않았지만 성공했습니다.

그러나 URL을 입력하고 직접 접근하면이 페이지가 표시됩니다.

'configs'에 분기를 만들 수있는 방법이 있습니까? 또는 이것을 해결하는 다른 방법?

나는이 질문

그래서 난 그냥 configs의 내 코드를 삽입 한, 바이올린 또는 plunker를 게시 할 필요가 없다 생각합니다.

$urlRouterProvider.otherwise('/admin/login'); 
$stateProvider 
.state('root.for_a', { 
    url: '/:brand_id/for_a', 
    views: { 
     '[email protected]': { 
      templateUrl: 'views/for_a.html', 
      controller: 'ForACtrl', 
     } 
    } 
}) 
.state('root.for_b', { 
    url: '/:brand_id/for_b', 
    views: { 
     '[email protected]': { 
      templateUrl: 'views/for_b.html', 
      controller: 'ForBCtrl', 
     } 
    } 
}) 
.state('root.for_c', { 
    url: '/:brand_id/for_c', 
    views: { 
     '[email protected]': { 
      templateUrl: 'views/for_c.html', 
      controller: 'ForCCtrl', 
     } 
    } 
}) 

나는 잘 생기거나 예쁜 프로그래머가 나를 도와 줄 때까지 기다릴 것입니다. :)

미리 감사드립니다.

+1

정확하게 이해하면 angularjs를 통해 페이지를 보호하고 싶습니다. 클라이언트 측 스크립트가 쉽게 조작 될 수 있기 때문에 보안 측면을 구현하기 위해 클라이언트 측 코드를 신뢰하지 않습니다. 엄격한 보안을 원할 경우 서버 측 접근 방식을 선택하십시오. 귀하의 코멘트 덕분에 – Verthosa

+0

@Verthosa. 나는 클라이언트 측만을 빌드 할 수있는 문제가있다. –

+1

ui-router에서 다음을 사용한다. - https://stackoverflow.com/questions/28518181/angular-ui-router-how-to-prevent-access-to- a-state –

답변

1

비슷한 문제를 극복하기 위해 'ui-view'태그에 'ng-if'를 사용했습니다.

<ui-view ng-if="functionToEvaluatePermissions()"></ui-view> 
<span ng-if="!functionToEvaluatePermissions()"> You shouldn't be here. </span> 
+0

오, 나는 이것이 매우 매력적인 해결책이라고 생각한다. 나는 이것을 또한 고려했지만보다 전문화 된 해결책이 있는지 없는지 알고 싶었습니다. –

+0

이보다 더 좋은 해결책이 없다면 답을 고를 것입니다. :) 답변 주셔서 감사합니다. –