Toegangscontrole
Verleen gedetailleerde toegang tot het schema, op basis van of de gebruiker ingelogd is (of niet), een bepaalde rol of bevoegdheid heeft, en meer.
Beschrijving
Met deze extensie kun je Toegangscontrolelijsten aanmaken om te beheren wie toegang heeft tot de verschillende elementen (operaties, velden en directives) van het GraphQL-schema.
Er wordt een nieuw Custom Post Type "Toegangscontrolelijst" aan de site toegevoegd. Je kunt de vermeldingen bekijken op de pagina "Toegangscontrolelijsten" in het menu, en klikken op "Nieuwe Toegangscontrolelijst toevoegen" om een nieuwe vermelding in de editor aan te maken.


In de editor geef je aan welke regels moeten worden voldaan om toegang te krijgen tot bepaalde schema-elementen, waaronder operaties (query of mutation), velden, globale velden en directives.

Je wijst de Toegangscontrolelijst toe aan het gewenste endpoint (privé-endpoint, enkel endpoint, aangepaste endpoints of persisted queries) via de Schemaconfiguratie.

Wanneer een GraphQL query wordt uitgevoerd en deze een van de geselecteerde schema-elementen uit de Toegangscontrolelijst bevat, worden de gekozen regels geëvalueerd.
Als een regel niet wordt nageleefd, wordt de toegang tot die operatie, dat veld of die directive geweigerd. Je kunt instellen hoe de API de respons moet geven:
- Publieke modus: Geeft de gebruiker een foutmelding met uitleg waarom de toegang is geweigerd
- Privémodus: De foutmelding geeft aan dat de operatie, het veld of de directive niet bestaat
In de publieke modus kan de respons er bijvoorbeeld zo uitzien:
{
"errors": [
{
"message": "You must have role 'author' to access field 'title' for type 'Post'",
"locations": [
{
"line": 86,
"column": 3
}
]
}
]
}In de privémodus kan de respons er zo uitzien:
{
"errors": [
{
"message": "There is no field 'title' on type 'Post'",
"locations": [
{
"line": 86,
"column": 3
}
]
}
]
}Lijst van Toegangscontoleregels
De extensie biedt de volgende Toegangscontoleregels:
- Toegang uitschakelen
- Toegang alleen verlenen als de gebruiker ingelogd of uitgelogd is
- Toegang alleen verlenen als de gebruiker een bepaalde rol heeft
- Toegang alleen verlenen als de gebruiker een bepaalde bevoegdheid heeft