2016-07-19 5 views
1

저는 Angular 2를 사용하여 작성하려는 응용 프로그램을 디자인하는 중입니다. 전반적인 디자인에 큰 영향을 미칠 수있는 몇 가지 기본적인 질문이 있었지만 지금 당황 스럽습니다. 그것을 "올바른 각도 방식"으로하는 방법. 내 질문은 다음과 같습니다.각도 2 동적 경로 건물 및 구성 요소 수준 권한

1) 동적 라우팅 질문 : 루트 구성 요소의 처음 부분에 모든 경로를 넣는 곳에서 문서를 권장하는 방식이 좋지 않습니다. 보안 구성 요소 모듈이 초기화되고 사용자가 해당 특정 영역/모듈에 대한 액세스 권한을 갖고있는 것으로 확인되면 경로 구성 객체에 동적으로 추가/제거 할 수 있기를 원합니다. 예 : 루트 app.component는 응용 프로그램의 공개 부분에 대한 초기 공개 경로 구성을 설정하는 등 응용 프로그램의 초기 설정을 수행합니다. 사용자가 성공적으로 로그인하면 AT THE POINT POINT, 보안 구성 요소를 초기화하고 라우터에 일반 보안 경로를 동적으로 추가하려고합니다. 안전한 자식 구성 요소를 사용하여 동일한 작업을 수행하려는 경우 영역의 "부모 구성 요소"는 사용자가 액세스 할 수있는 경로를 정의하고 해당 부모 구성 요소가 초기화되고 사용자가 해당 구성 요소에 대한 액세스 권한이 있는지 확인합니다. 그래서, 이것도 가능합니까? 예제에서 라우트 구성은 상수이지만 라우트 구성에 추가되는 구성 요소를 통해이 작업을 수행 할 수 있기를 바랬습니다.

2) 구성 요소 수준의 사용 권한 : 전체 구성 요소에 대한 액세스 권한 외에도 사용자가 가질 수있는 구성 요소 내부의 사용 권한이 있습니다 (예 : 사용자가 장비 모듈에 액세스 할 수 있음). 장비 목록을 읽을 수는 있지만 CUD는 불가능합니다.). 나는 db의 사용자 권한을 저장할 수 있기를 원한다. (예 : "userID, 'equipment.retrieve'".) 그런 다음 권한 (예 : permission = "equipment.retrieve")에 대한 속성을 허용하는 구조 지시문을 작성하고 요소를 숨 깁니다. 그것은 false로 평가됩니다. 내 질문에 여기에 권한이 클라이언트쪽에 충분한 보안 경우입니다? 권한이없는 경우 어쨌든 사용자를 차단해야합니다 API 수준에서 권한 부여 검사가 있지만, 클라이언트 측에서이 최선의 방법 일입니다.

내가 얻을 수있는 피드백을 싶어요.

답변

1

한 번에 모든 경로를로드해야하지만 나중에

router.resetConfig([ 
{ path: 'team/:id', component: TeamCmp, children: [ 
    { path: 'simple', component: SimpleCmp }, 
    { path: 'user/:name', component: UserCmp } 
] } 
]); 
처럼 다시로드 할 수 있습니다

이 방법을 사용하면 언제든지 라우트 배열을 수정 한 다음 라우터 구성을 새로운 업데이트 된 라우트 배열로 재설정 할 수 있습니다.

New Angular2 router configuration

https://github.com/angular/angular/issues/11437#issuecomment-245995186가 흥미 RC.6 Plunker

+0

을 제공 참조하십시오. 루트 구성을 유지 관리하고 업데이트하는 서비스를 만들 수 있다고 생각합니다. 내가 원했던만큼 깨끗하지는 않지만 작동 할 것입니다. 감사! 권한 액세스에 대한 의견이 있으십니까? – JakeHova

+0

권한 액세스가 무엇인지 확실하지 않습니다. 구조 지시 방법은 합리적인 것처럼 보입니다. "충분한 보안"을 위해서는 서버에서 보안을 강화해야합니다. 클라이언트에서 보안이 이루어지지 않으면 보안이 전혀 없습니다. 클라이언트에서는 마치 커튼처럼 쉽게 제거 할 수 있습니다. –