Kontrol Akses
Berikan akses granular ke skema, berdasarkan apakah pengguna sudah masuk (atau tidak), memiliki peran atau kemampuan tertentu, dan lainnya.
Deskripsi
Ekstensi ini memungkinkan kita membuat Daftar Kontrol Akses, untuk mengelola siapa yang dapat mengakses berbagai elemen (operasi, bidang, dan direktif) dari skema GraphQL.
Sebuah Custom Post Type "Daftar Kontrol Akses" baru ditambahkan ke situs. Kita dapat menelusuri entri-entrinya di halaman "Daftar Kontrol Akses" di menu, dan mengklik "Tambah Daftar Kontrol Akses Baru" untuk menambahkan entri baru di editor.


Di editor, kita menentukan aturan apa yang harus dipenuhi untuk mengakses elemen skema apa, dari antara operasi (query atau mutation), bidang, bidang global, dan direktif.

Kita menetapkan Daftar Kontrol Akses ke endpoint yang diinginkan (endpoint privat, endpoint tunggal, endpoint kustom, atau persisted queries) melalui Konfigurasi Skema.

Saat mengeksekusi sebuah GraphQL query, jika query tersebut mengandung salah satu elemen skema yang dipilih dalam Daftar Kontrol Akses, aturan yang dipilih akan dievaluasi.
Jika ada aturan yang tidak terpenuhi, akses ke operasi, bidang, atau direktif tersebut ditolak, dan kita dapat mengonfigurasi bagaimana API harus memberikan respons:
- Mode publik: Berikan pesan kesalahan kepada pengguna, yang menjelaskan mengapa akses ditolak
- Mode privat: Pesan kesalahan menunjukkan bahwa operasi, bidang, atau direktif tersebut tidak ada
Misalnya, dalam mode publik, kita mungkin mendapatkan respons ini:
{
"errors": [
{
"message": "You must have role 'author' to access field 'title' for type 'Post'",
"locations": [
{
"line": 86,
"column": 3
}
]
}
]
}Sedangkan dalam mode privat kita mungkin mendapatkan respons ini:
{
"errors": [
{
"message": "There is no field 'title' on type 'Post'",
"locations": [
{
"line": 86,
"column": 3
}
]
}
]
}Daftar aturan Kontrol Akses
Ekstensi ini menyediakan aturan Kontrol Akses berikut:
- Nonaktifkan akses
- Berikan akses hanya jika pengguna sudah masuk atau keluar
- Berikan akses hanya jika pengguna memiliki suatu peran
- Berikan akses hanya jika pengguna memiliki suatu kemampuan