대부분의 애플리케이션에서는 사용자의 역할에 따라 액세스 제어가 필요합니다. 이 단원에서는 웹 응용 프로그램에 대해 이러한 컨트롤을 설정하는 예를 살펴보겠습니다. 이 작업의 일부로 다음을 수행해야 합니다.

  • 사용자 역할 정의
  • 역할에 따라 탐색 메뉴 항목 표시 제어
  • 특정 역할에 액세스할 수 없는 페이지를 탐색할 수 없도록 합니다.

초기 준비

준비 부분부터 시작하겠습니다. 추가 구성의 편의를 위해 현재 사용자에 대한 정보를 저장할 전역 변수를 생성해야 합니다. 따라서 확인이 필요한 경우 매번 백엔드에 연락하여 사용자에 대한 정보를 요청할 필요가 없습니다. 전역 변수에서 필요한 데이터를 읽는 것으로 충분합니다.


인증된 사용자가 애플리케이션에 들어갈 수 있는 다양한 옵션을 고려해야 합니다.

  • Login 페이지에서 성공적인 인증 결과로 로그인합니다.
  • 등록 결과로 로그인하십시오.
  • 이미 승인된 사용자의 경우 특정 페이지에 대한 링크를 통해 직접 로그인합니다.

이러한 각 경우에 사용자에 대한 정보를 반환하는 백엔드 쿼리가 사용됩니다. 해당 비즈니스 프로세스에서 앞에서 생성한 전역 변수 User_gv 를 기록하기 위해 Set Variable 블록만 추가하면 됩니다.

이 블록은 비즈니스 프로세스 섹션의 Prebuilt 폴더에 있는 승인된 사용자의 CheckAuth 비즈니스 프로세스에 추가됩니다.

로그인 또는 가입 페이지를 통해 입력하려면 해당 버튼의 비즈니스 프로세스에 블록이 추가됩니다.

응용 프로그램의 시작 페이지에서 결과를 확인합시다. 이를 위해 이름으로 사용자를 맞이하고 역할에 따라 관리자인지 여부를 기록하는 Label 을 추가해 보겠습니다.

Label 이 표시될 때 실행되는 비즈니스 프로세스를 설정해야 합니다( Label onShow 트리거).

  1. Expand User 합니다. 사용자 이름 및 역할에 대한 정보.
  2. In Array 에서 . 주어진 사용자가 Admins 그룹에 있는지 확인합니다.
  3. If-Else . 점검 결과에 따른 조치의 가변성.
  4. Set Variable (String) . 사용자가 Admins 그룹의 구성원이 아니면 빈 값인 경우 " NOT " 값으로 String 변수를 생성합니다.
  5. Concat Strings (Multiple) . " Hi, Ken. You are NOT Admin "과 같은 완전한 문구를 만들려면 Hi, Ken. You are NOT Admin ”.
  6. Label Update Properties . 페이지에서 이 문구의 최종 표시를 위해.

모든 것이 올바르게 완료되면 페이지에 들어가는 변형으로 화면에 비슷한 결과가 나타납니다.

메뉴 항목 가시성 제어

이제 주요 부분으로 넘어갈 시간입니다. 관리자만을 위한 페이지를 생성하고 해당 메뉴 항목( Admin Page )을 추가하여 해당 페이지로 이동하도록 합시다. 가장 좋은 해결책은 기본적으로 가시성을 비활성화하는 것입니다.

Navigate 블록을 사용하여 Page 매개변수에서 생성된 페이지를 선택하고 이 페이지의 ID를 찾아야 합니다.

이 예에서는 액세스가 제한된 페이지가 하나뿐이지만 이러한 페이지가 많을 수 있는 경우 옵션을 즉시 예측하고 전역 읽기 전용 변수를 만들어 페이지 목록을 저장하는 것이 좋습니다.

다음으로 탐색 메뉴 항목의 가시성을 제어하기 위해 비즈니스 프로세스 자체( Set NavItem Visibility 라고 함)를 만들어야 합니다.

  1. Expand User 합니다. 사용자 역할에 대한 정보.
  2. In Array 에서 . 주어진 사용자가 Admins 그룹에 있는지 확인합니다.
  3. For each loop 에 대해 . 전역 변수에 지정된 모든 페이지에 대해 루프를 실행합니다.
  4. NavItem Update Properties . 사용자가 관리자인지 여부에 따라 요소의 가시성을 제어합니다.

로그인 및 사용자 등록 버튼의 비즈니스 프로세스에서 Set Variable 로 이동하기 전에 생성된 비즈니스 프로세스의 블록을 추가해야 합니다.

직접 링크를 통한 액세스 제어

마지막으로 해야 할 일은 " On app launch " 트리거에 의해 애플리케이션이 시작될 때마다 실행되는 비즈니스 프로세스를 설정하는 것입니다. 이전 단계에서와 마찬가지로 인증된 사용자에 대한 Set NavItems Visibility 블록을 추가합니다.

또한 직접 링크를 통해 닫힌 페이지에 대한 액세스에 대한 보호를 제공해야 합니다.

  1. In Array (Admin_pages) . 대상 페이지가 관리자 전용 페이지 목록에 있는지 확인합니다.
  2. If-Else . 점검 결과에 따른 조치의 가변성. False 이면 지정된 페이지로 이동할 수 있습니다. True 의 경우 해당 페이지 접근 권한에 대한 추가 확인이 필요합니다.
  3. Expand User 합니다. 전역 변수 User_gv 에서 사용자 정보를 읽으려면.
  4. In Array 에서 . Admins 그룹의 구성원을 확인합니다.
  5. If-Else . 관리자 권한의 유무에 따라 작업을 선택합니다.
  6. Navigate . 필요한 페이지로 이동하거나 적절한 권한이 없는 사용자가 관리자 전용 페이지를 열려고 하는 경우 시작 페이지로 리디렉션합니다.

이제 선택한 페이지가 무단 액세스로부터 보호됩니다. 권한이 없으면 메뉴에 표시되지 않으며 직접 링크를 통해서도 액세스할 수 없습니다.

특정 페이지에 대한 액세스 보호가 해당 페이지에서 사용할 수 있는 엔드포인트에 대한 자동 보호를 의미하지 않는다는 점을 기억하는 것이 중요합니다. 이렇게 하려면 필요한 경우 Middleware Token Auth 설정에서 선택한 엔드포인트에 대한 액세스 권한이 있는 사용자 그룹을 지정해야 합니다.

Was this article helpful?

앱마스터.io 101 단기 특강

10 모듈
2 주

어디서부터 시작해야 할지 모르겠다고요? 초보자를 위한 단기 집중 과정을 시작하고 AppMaster를 A부터 Z까지 살펴보세요.

코스 시작
Development it’s so easy with AppMaster!

도움이 더 필요하세요?

전문가의 도움으로 모든 문제를 해결하십시오. 시간을 절약하고 애플리케이션 구축에 집중하십시오.

headphones

연락처 지원

문제에 대해 알려주시면 해결책을 찾아드리겠습니다.

message

커뮤니티 채팅

채팅에서 다른 사용자와 질문에 대해 토론하십시오.

커뮤니티 가입