Định nghĩa kiểm soát truy cập
Chúng ta có thể quản lý ai được phép truy cập vào từng trường và chỉ thị trong schema thông qua danh sách kiểm soát truy cập.
Gato GraphQL đi kèm với các quy tắc kiểm soát truy cập sau:
- Vô hiệu hóa quyền truy cập
- Cấp quyền truy cập nếu người dùng đã đăng nhập hoặc chưa đăng nhập
- Cấp quyền truy cập nếu người dùng có một vai trò nào đó
- Cấp quyền truy cập nếu người dùng có một khả năng nào đó
- Cấp quyền truy cập nếu khách truy cập đến từ một địa chỉ IP được cho phép
Mỗi khi queries được yêu cầu (thực thi qua một endpoint tùy chỉnh hoặc dưới dạng persisted query) chứa một hoặc nhiều trường hoặc chỉ thị đã được thêm vào danh sách kiểm soát truy cập, các quy tắc tương ứng sẽ được đánh giá. Nếu bất kỳ quy tắc nào không được thỏa mãn, quyền truy cập vào trường hoặc chỉ thị đó sẽ bị từ chối.
Cấu hình được tạo thông qua danh sách kiểm soát truy cập (ACL), và được cung cấp cho các endpoint tùy chỉnh và persisted queries thông qua cấu hình schema.
Truy cập tất cả danh sách kiểm soát truy cập
Nhấp vào "Access Control Lists" trên menu của plugin, hệ thống sẽ hiển thị danh sách tất cả các danh sách kiểm soát truy cập đã được tạo:

Tạo danh sách kiểm soát truy cập mới
Nhấp vào nút "Add New Access Control List" để mở trình soạn thảo WordPress:

Đặt tiêu đề cho danh sách kiểm soát truy cập, thêm các mục với các thao tác, trường và chỉ thị, cấu hình các quy tắc áp dụng cho chúng, và xác định chế độ hiển thị (công khai hoặc riêng tư):

Khi đã sẵn sàng, nhấp vào nút Publish. Sau đó, danh sách kiểm soát truy cập mới sẽ có sẵn trong cấu hình schema.
Các mục kiểm soát truy cập
Mỗi Danh sách Kiểm soát Truy cập chứa một hoặc nhiều mục, mỗi mục bao gồm các thành phần sau:
- Các thao tác cần cấp hoặc từ chối quyền truy cập
- Các trường cần cấp hoặc từ chối quyền truy cập
- Các chỉ thị cần cấp hoặc từ chối quyền truy cập
- Danh sách các quy tắc cần xác thực

Chọn trường từ các interface
Ngoài các trường từ các kiểu dữ liệu, chúng ta cũng có thể chọn các trường từ các interface. Trong trường hợp này, việc xác thực kiểm soát truy cập sẽ được thực hiện trên tất cả các kiểu dữ liệu triển khai interface đó.

Chế độ công khai/riêng tư
Nếu module "Public/Private Schema" được bật, khi quyền truy cập vào một trường hoặc chỉ thị bị từ chối, API có thể hoạt động theo 2 cách:
- Chế độ công khai: Cung cấp thông báo lỗi cho người dùng, giải thích lý do truy cập bị từ chối
- Chế độ riêng tư: Thông báo lỗi cho biết rằng trường hoặc chỉ thị đó không tồn tại
Nếu module này không được bật, hành vi mặc định là công khai.
Chế độ công khai/riêng tư chi tiết
Nếu tùy chọn "Enable granular control?" từ module "Public/Private Schema" được đặt là on, mục sẽ có thêm một thành phần:
- Public/Private Schema: hành vi khi quyền truy cập bị từ chối

Mô tả danh sách kiểm soát truy cập
Sử dụng trường "Excerpt" trong bảng cài đặt Tài liệu để thêm mô tả cho danh sách kiểm soát truy cập.
Tìm thêm thông tin trong hướng dẫn Thêm mô tả cho API.
Sử dụng danh sách kiểm soát truy cập
Sau khi tạo ACL, chúng ta có thể để Endpoint Tùy chỉnh hoặc Persisted Query sử dụng nó bằng cách chỉnh sửa Cấu hình Schema tương ứng, và chọn ACL từ danh sách dưới block "Access Control Lists".

Nếu không tùy chỉnh cấu hình, các Danh sách Kiểm soát Truy cập mặc định được định nghĩa trên trang Cài đặt, trong tab "Access Control", sẽ được sử dụng:
