문제

서버에서 AJAX 응용 프로그램으로 상당히 복잡한 권한을 전파하는 가장 좋은 방법에 대해 토론하고 있으며 최선의 접근 방식은 확실하지 않습니다.

본질적으로, 나는 권한을 한 번의 전체 권한 세트를 요청하고 UI를 적절하게 조정할 수 있도록 권한을 정의하기를 원합니다 (UI 변경은 특정 컨텍스트 메뉴 항목을 비활성화하는 것만 큼 낮은 레벨 일 수 있습니다). 물론 여전히 권한 서버 측을 시행해야합니다.

그래서 나는 누구나 가장 좋은 방법에 대한 제안이 있는지 궁금했습니다.

  1. 권한을 유지하고 서버 코드에 사용하십시오
  2. JavaScript의 권한에 쉽게 액세스 할 수 있습니다
  3. 각 개인 권한에 대해 서버에 왕복 요청을 할 필요가 없습니다.

생각?

도움이 되었습니까?

해결책

"사용자 수준"또는 "사용자 유형"과 같은 명확한 권한 세트가있는 경우 숨겨진 필드에서 값을 전달하고 DOM을 통해 값에 액세스 할 수 있습니다. 권한이 더 세분화 된 경우에도 여전히이 작업을 수행 할 수 있지만 숨겨진 필드가 많거나 XML 또는 JSON 또는 다른 형식으로 정보를 인코딩해야합니다.

사용자가 특정 활동에 대한 허가를 받았는지 확인하기 위해 마스크가있는 단일 숫자 값을 마스크로 할 수 있도록 비트 플래그로 설정할 수 있습니다. 그것은 매우 유연하고 32 세 이상의 특정 "권한"이없는 한, 매우 작은 패키지 (기본적으로 서명되지 않은 INT)에서 해당 권리의 순열을 허용합니다.

예를 들어:

0x00000001 //edit permission
0x00000002 //create new thing permission
0x00000004 //delete things permission
0x00000008 //view hidden things permission
   .
   .
   .
0x80000000 //total control of the server and everyone logged in

그런 다음 허가를받은 사용자 0x000007 편집, 생성 및 삭제할 수는 있지만 다른 것은 없습니다.

두 경우 모두, 당신이 올바른 길을 가고 있다고 생각합니다. 페이지 당 1 회 요청을 작성하고, 권한을 글로벌 JavaScript 데이터 구조에 저장하고 거기에서 이동하십시오. Ajax는 좋지만 페이지 전체에 특정 권한을 위해 서버를 쿼리하고 싶지는 않습니다. 페이지로드에서 한 번 수행하고 페이지의 프레젠테이션을 설정하고 전역 변수로 값을 저장 한 다음 이벤트 기능에 대해 로컬로 권한을 참조하십시오.

다른 팁

허가 구조를 클라이언트에 JSON 객체 (또는 원하는 경우 XML, XML)로 전송하는 경우 클라이언트 측 코드로 해당 객체를 조작하고 서버로 다시 보낼 수 있습니다. 데이터를 유지합니다.

반드시 가장 "올바른"솔루션으로 볼 필요는 없지만 모든 권한을 서버쪽에 유지하고 JSON 권한 시스템보다 업데이트 된 UI를 제공 할 수 있습니까?

앱이 얼마나 바쁘고 집중적으로 기대되는지에 따라 결정을 내려야하지만, 어느 쪽이든 할 가치가있는 결정입니다.

그것들을 다시 인코딩하십시오 JSON.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top