2012-09-08 2 views
3

자바 스크립트 웹 응용 프로그램이 거의 전적으로 클라이언트 측 렌더링되었습니다. REST 인터페이스를 통해 모델을 사용하여 클라이언트와 서버간에 데이터가 교환 된 다음 클라이언트 측 템플리트를 사용하여 렌더링됩니다.권한/승인 데이터를 클라이언트 쪽 Javascript에 전달하는 방법은 무엇입니까?

사용자 역할/권한 (권한 부여는 서버 측 모델 기반 ACL)을 기반으로 UI의 일부분을 조건부로 렌더링 (또는 일부 작업 실행)해야합니다.

  1. 모델은
  2. 내가 필요 자신의 특정 권한이있는 다른 내장 된 모델이있을 수 있습니다 교환 :

    하는 가장 좋은 방법이 있음을 고려하여, 클라이언트에 서버에서 권한 데이터 통신 무엇입니까 또한 다른 모델에 대한 READ 및 CREATE 권한을 알아야합니다 (모델 객체가 아직 클라이언트 측에서 사용 가능하지 않음)

  3. REST 호출 및 DB 호출을 최소화해야합니다.

답변

3

클라이언트는 요청별로 서버에서 반환 한 정보를 기반으로 사용자에게 컨트롤을 제공해야합니다. 서버의 응답에 작업 수행에 사용되는 정보가 포함되어있는 경우 클라이언트는 해당 힌트를 가져와 단추를 활성화하거나 표시되도록 설정해야합니다.

이 접근법을 사용하면 자원/권한 -이 모델 + HTTP 메소드의 측면에서 ACL을 정의 할 수 있습니다. 서버가 자원 표현을 반환하려고하면 사용자가 해당 자원 (또는 하위/하위 자원과 같은 다른 항목)에 대해 소유하고있는 모든 권한에 대해 ACL을 폴링하여 해당 자원에 대해 볼 수있는 모든 옵션을 포함 할 수 있습니다.

+0

예, 이것이 내가 할 수있는 유일한 대안이라고 생각합니다. 주요 개념을 강조하고 있습니다 ... 조금 더 복잡합니다.내 전체 솔루션으로 업데이트 된 게시물을 유지하겠습니다. – Mario

0

같은 무언가를 가진 당신을 도울 것입니다 수 있습니다. 나는 here으로 보일 것이다. Addy Osmani는 자바 스크립트 공동체에서 매우 커서이 자바 스크립트 프레임 워크를 만드는 데 도움이되었습니다. 그것은 당신의 질문을 다루는 능력이있는 것 같습니다. 여기

샌드 박스 당신은 특정 위젯 등 페이지

로 렌더링 할 수있는 권한이 있는지 여부로 위젯에 대한 권한을 구성 할 수 있도록 사용 권한 층을 포함 주요 README에서 인용이다 다른 자바 스크립트 프레임 워크도 여러 가지가 있습니다. 페이지 수준 보안을 손쉽게 처리 할 수 ​​있으며 많은 코드를 다시 작성할 필요가 없습니다. 또 다른 예제는 Backbone Marionette입니다. 페이지 수준 보안을 구현하는 데 도움이되는 합성보기라는 개념이 있습니다.

마지막으로 또 다른 옵션은 보안 정보를 전혀 전송하지 않는 것입니다. REST API는 액세스 권한이있는 모델 정보 만 제공 할 수 있습니다. 말하는 "누락 된"데이터를 적절하게 처리 할 수있는 방법으로 클라이언트 측 템플리트를 작성해야합니다.

관련 문제