Gebruikers en authenticatie
Voor een veilige API is het belangrijk om gebruikers te definiëren die toegang hebben tot je gegevens. Ook om alle functionaliteit van de interactieve documentatie te kunnen gebruiken, is het handig om alvast voor iedere rol een gebruiker te maken. In deze sectie leer je hoe je gebruikers configureert en hoe authenticatie werkt.
De users-sectie
Gebruikers worden gedefinieerd in de users
-array van het JSON-configuratiebestand:
{ "collections": [ // Je collecties hier ], "users": [ // Gebruikers komen hier ], "data": { // Je gegevens hier } }
Gebruikers definiëren
Elke gebruiker moet minimaal een e-mail, wachtwoord en één of meer rollen krijgen zoals je ziet in onderstaand
voorbeeld. Deze rollen lever je aan in de vorm van een array, omdat het ook mogelijk is om meerdere rollen
tegelijkertijd te hebben. Het is gebruikelijk om rollen als user
en admin
te gebruiken, maar je kunt ook eigen
rollen bedenken, zoals editor
of driver
als dat belangrijk is voor jouw applicatie. In de sectie over rollen en
permissies leer je hier meer over.
{ "users": [ { "id" : 1, "email": "[email protected]", "password": "admin123", "roles": [ "admin" ] }, { "id" : 2, "email": "[email protected]", "password": "gebruiker123", "roles": [ "user" ] }, { "id" : 3, "email": "[email protected]", "password": "super123", "roles": [ "admin", "editor", "user" ] } ] }
Wanneer je een gebruiker inlogt met gebruikersnaam en wachtwoord, krijg je naast de JWT-token en rol ook de id
terug.
Omdat gebruikers zelf geen collectie zijn, kun je de basisinformatie van gebruikers (e-mail en wachtwoord) niet aanpassen. Wanneer je gebruikers wil verrijken met extra informatie - zoals een gebruikersnaam, telefoonnummer, gelikte recepten, profielfoto of adres - maak je hiervoor een aparte collectie aan. Deze koppel je aan een gebruiker via een referentieveld.
Voorbeeld: Gebruikers voor een webshop
Hier is een voorbeeld van een users-sectie voor een webshop. De database wordt dus initieel gevuld met deze accounts:
{ "users": [ { "email": "[email protected]", "password": "admin123", "roles": [ "admin" ] }, { "email": "[email protected]", "password": "medewerker123", "roles": [ "employee" ] }, { "email": "[email protected]", "password": "voorraad123", "roles": [ "inventory" ] }, { "email": "[email protected]", "password": "klant123", "roles": [ "user" ] } ] }
Er zijn geen vereisten voor het wachtwoord.
In de volgende sectie zullen we leren hoe je rollen en permissies configureert om te bepalen wie wat mag doen in je API.