In dit artikel bekijken we hoe het AppMaster.io no-code platform het probleem van toegang tot gegevens voor applicatiegebruikers oplost.
Dit gebeurt door het introduceren van rollen zoals Gebruikers, Moderators, Admins en andere vereisten. Deze oplossing geeft meer flexibiliteit binnen uw gebouwde applicatie en controleert de toegang tot informatie en functionaliteit binnen de gebouwde applicatie.
Het artikel zal nuttig zijn voor iedereen die in de functionaliteit van het AppMaster.io-platform wil duiken en de mogelijkheden ervan wil zien in termen van instellingen voor toegang tot gegevens door rollen.
Мodule Auth door AppMaster.io
De registratie in de geassembleerde applicatie op ons platform wordt vertegenwoordigd door de Auth-module, waarmee u gebruikersgroepen kunt aanmaken en bewerken en toegang kunt krijgen tot hun rechten. De Auth-module is al vooraf geïnstalleerd in het project wanneer het wordt gemaakt.
Beschikbare Auth module instellingen:
SignUp Groups - lijst van gebruikersgroepen die zich kunnen registreren;
SignUp - omvat de mogelijkheid tot registratie in de toepassing;
Sessie timeout (minuten) - de tijd waarna de huidige gebruikerssessie wordt beëindigd als de gebruiker inactief is (in minuten). De standaardinstelling is 60 minuten;
Failed login delay (in ms) - vertragingstijd voor een serverrespons in geval van een mislukte inlogpoging (in ms). De standaardwaarde is 0 ms;
E-mailbevestiging vereist - een optie die verificatie via e-mail vereist indien ingeschakeld;
Aangemelde gebruiker actief - zet het actieve kenmerk op True voor elke geregistreerde gebruiker.
Groepen - hiermee kunt u gebruikersgroepen aanmaken en bewerken.
AppMaster.io gebruikt de Data Model Designer om met modellen te werken.
Gebruiker en Gebruikerssessie zijn twee modellen die automatisch worden aangemaakt in de Data Model Designer. Vooraf geïnstalleerde datamodelvelden kunnen niet worden gewijzigd of verwijderd, maar nieuwe kunnen wel worden toegevoegd.
Voor deze modellen worden ook automatisch blokken van bedrijfsprocessen (BP's) aangemaakt.
Automatisch gegenereerde BP's gekoppeld aan User en User Sessions
- Gebruiker Model
DB: Delete User - verwijdert object User uit de database via ID;
DB: Update User - reset alle velden van het blok User-object dat aan de invoer in de database is doorgegeven en werkt ze bij volgens de opgegeven waarden (om alleen de opgegeven velden te wijzigen, wordt het blok DB: Patch User gebruikt);
DB: Create User - slaat op in de database en geeft het opgegeven User-object terug (om het op te bouwen uit de opgegeven velden wordt het blok Make User gebruikt);
DB: Soft Delete User - werkt het DeletedAt attribuut op het User object bij en laat het achter in de database;
DB: Bulk Delete User - neemt als input een array van ID's (ids) van gebruikersobjecten die zullen worden verwijderd uit de database;
failed_ids - een array van gebruikers-ID's die niet zullen worden verwijderd;
DB: Patch User - werkt de opgegeven velden van het User-object in de database bij (om alle velden opnieuw in te stellen, gebruikt u het blok DB: Update User);
DB: Search User - vindt een of meer gebruikersobjecten in de database op basis van velden en geeft ze terug;
DB: GetOne User - vindt het gebruikersobject in de database op basis van zijn ID en geeft deze terug;
Expand User - geeft alle velden van het geselecteerde gebruikersobject terug;
Make User - creëert een nieuw gebruikersobject in het geheugen op basis van de opgegeven velden en geeft het terug (om het gecreëerde object in de database op te slaan, gebruikt u het blok DB: Create User);
- Model gebruikerssessie
DB: Delete User Session - verwijdert het object User Session uit de database met de opgegeven ID;
DB: Update User Session - zet alle velden van het object User Session die zijn doorgegeven aan het invoerblok terug in de database en werkt ze bij volgens de opgegeven waarden (om alleen de opgegeven velden te wijzigen, gebruikt u DB: Patch User Session);
DB: Create User Session - slaat op in de database en geeft het gegeven object User Session terug (om het op te bouwen uit de opgegeven velden, gebruikt u het blok Make User Session);
DB: Soft Delete User Session - werkt het DeletedAt attribuut van het User Session object bij en laat het achter in de database;
DB: Bulk Delete User Session - aanvaardt als invoer een reeks ID's van User Session-objecten die zullen worden verwijderd uit de database;
failed_ids - de array definieert de verzameling ID's die niet zullen worden verwijderd;
DB: Patch User Session - werkt de opgegeven velden van het object User Session in de database bij (om alle velden opnieuw in te stellen, gebruikt u het blok DB: Update User Session);
DB: Search User Session - zoekt een of meer objecten van User Session in de database op basis van velden en geeft ze terug;
DB: GetOne User Session - vindt het User Session-object in de database aan de hand van zijn ID en stuurt het terug;
Expand User Session - geeft alle velden van het geselecteerde User Session-object terug;
Make User Session - maakt een nieuw User Session-object in het geheugen van de opgegeven velden en retourneert het (om het gemaakte object in de database op te slaan, gebruikt u het blok DB: Create User Session);
- Auth-module
Auth: Generate Auth Token - genereert een autorisatietoken (Auth Token) van een gegeven lengte;
Auth: Registration - registreert een nieuwe gebruiker;
Auth: Authorization - controleert of het Auth Token bestaat in het systeem en geeft de gebruiker terug die eraan gekoppeld is;
Auth: Authentification - controleert de login en het wachtwoord van de gebruiker en retourneert een Auth Token;
Auth: Logout - accepteert een Auth Token en beëindigt de huidige gebruikerssessie;
Auth: Get current user - retourneert de gegevens van de huidige gebruiker;
Auth: Remove user from the group - verwijdert een gebruiker uit de opgegeven groep door zijn ID (gedefinieerd in de instellingen van de Auth-module);
Auth: Add user to the group - voegt een gebruiker toe aan de gespecificeerde gebruikersgroep aan de hand van zijn ID (gedefinieerd in de instellingen van de Auth-module);
Auth: Hash wachtwoord - een wachtwoordstring converteren naar een hash;
Auth: Restore Password - accepteert de gebruikersnaam en het nieuwe wachtwoord van de gebruiker, waardoor deze opnieuw wordt ingesteld;
Auth: Change Password - vervangt het huidige gebruikerswachtwoord door een nieuw wachtwoord;
Auth: Probe Password - verifieert het wachtwoord en past de hash aan;
De Endpoints van de Auth Module en de User en User Session modellen worden automatisch gegenereerd bij het aanmaken van het project.
Auth-module
Type verzoek | Eindpunt | Verbonden BP |
---|---|---|
/logout/ | Auth: Afmelden | |
/auth/ | Auth: Authentificatie | |
/register/ | Auth: Registratie | |
/confirm/ | Auth: Registratie | |
/user/wijzig-wachtwoord | Auth: Wachtwoord wijzigen | |
/user/restore-password/ | Auth: Herstel wachtwoord | |
/gebruiker/profiel/ | Auth: Autorisatie |
Gebruiker
Type verzoek | Eindpunt | Verbonden BP |
---|---|---|
/user/:id/ | DB: Gebruiker bijwerken | |
/user/:id/ | DB: Gebruiker verwijderen | |
/user/:id/ | DB: GetOne gebruiker | |
/user/ | DB: Gebruiker zoeken | |
/user/:id | DB: Patch gebruiker | |
/user/ | DB: Gebruiker aanmaken |
Gebruiker Sessie
Type verzoek | Eindpunt | Verbonden BP |
---|---|---|
/user-session/:id/ | DB: Gebruikerssessie verwijderen | |
/user-session/:id/ | DB: Haal één gebruikerssessie op | |
/user-session/ | DB: Zoek gebruikerssessie | |
/user-session/:id/ | DB: Patch Gebruikerssessie | |
/user-session/ | DB: Gebruikerssessie aanmaken | |
/user-session/:id/ | DB: Gebruikerssessie bijwerken |
Auth Token wordt gebruikt als het huidige sessietoken van de geautoriseerde gebruiker. In de webapplicatie BP is het mogelijk om met dit token te interageren:
- Get Auth Token retourneert de Auth van de huidige geauthenticeerde gebruikerssessie;
- Set Auth Token overschrijft het Auth Token van de huidige sessie van de geautoriseerde gebruiker;
- Remove Auth Token verwijdert het Auth Token van de huidige sessie van de geautoriseerde gebruiker;
Het voorbeeld toont hoe je de huidige gebruiker krijgt.
Ga hiervoor naar het tabblad Business logic en sleep het Auth: Get current user blok.
Vervolgens wordt een Endpoint aangemaakt voor de aangemaakte BP, waarmee contact wordt gelegd met de server om het object van de huidige Gebruiker op te halen.
Selecteer de gebruikersgroep in de sectie Endpoints en maak een GET request method voor het nieuw aangemaakte proces om de huidige Gebruiker op te halen.
Doe in de BP van de webapplicatie een verzoek naar het aangemaakte eindpunt (Server request GET /user_current) om de huidige gebruiker op te halen.
Groepen en machtigingen
Gebruikersgroepen worden aangemaakt in de instellingen van de Auth-module. Om naar de module-instellingen te gaan, opent u de sectie Modules en klikt u op de kaart van de betreffende module.
Het tabblad Groepen bevat een lijst met alle bestaande groepen. Klik op Een nieuw element toevoegen om een nieuwe Gebruikersgroep aan te maken. In het nieuwe modale venster kunt u de groep aanpassen en een beschrijving, pictogram, pictogram- en labelkleur en tag toevoegen.
Om bestaande gebruikersgroepen te bewerken, moet u ook naar de instellingen van de Auth-module gaan. Ga daarvoor naar de sectie Modules en klik op het kaartje van de betreffende module. Vervolgens zal in het tabblad Groepen een lijst met groepen beschikbaar zijn, om deze te bewerken moet u op het pictogram Instellingen klikken. In het nieuwe modale venster kunt u de groep aanpassen, de beschrijving, het pictogram, de kleur van het pictogram en het label en de tag wijzigen.
Om de rechten van lezen/schrijven in de database voor bepaalde gebruikersgroepen te wijzigen, wordt de Middleware van de Auth-module gebruikt.
Selecteer in de sectie Eindpunten het Eindpunt waarvan u de lees-/schrijfrechten wilt wijzigen. Klik op de knop Instellingen in het gewenste Endpoint en ga naar het tabblad Middleware in het modale venster dat opent. Stel vervolgens, door te klikken op Instellingen bewerken in de regel met Token Auth Middleware, de toegangsrechten in.
Toegang tot pagina's in de webapplicatie: U moet naar de webapplicatie gaan en klikken op de knop Instellingen van de pagina waartoe u de toegang wilt beperken.
In het veld Tonen voor groepen moet u een lijst van gebruikersgroepen selecteren die deze pagina mogen bekijken. Standaard is het veld leeg, en is toegang toegestaan voor alle categorieën gebruikers.
Conclusie
Toegang tot gegevens per rol is een handige manier om informatiestromen te organiseren voor specifieke groepen gebruikers. Met het no-code platform AppMaster.io kunt u deze functie in een trial testen.
Als u onder de indruk bent van de functionaliteit, neem dan ons Professional-plan, dat deze functie omvat, evenals binaire bestandsexport, regelmatige back-ups, projectoverdrachten en nog veel meer. Wij wachten op u op het AppMaster.io-platform om zelfs uw meest gedurfde projecten te implementeren.