Direct naar inhoud

Hoe regel je inloggen en gebruikers veilig?

Kort antwoord

Inloggen bouw je niet zelf: daar is een bestaande inlogdienst voor, zoals die van Supabase of de ingebouwde dienst van je tool. Daarnaast moeten wachtwoord vergeten, e-mailbevestiging, account verwijderen en rollen geregeld zijn. En de server moet controleren wat elke gebruiker mag, want inloggen alleen zegt nog niet wat iemand mag zien.

Wat is het verschil tussen inloggen en rechten?

Kort: Inloggen (authenticatie) bepaalt wie je bent, rechten (autorisatie) bepalen welke gegevens en functies je daarna mag gebruiken.

Er spelen twee vragen, en ze worden vaak door elkaar gehaald:

  • Authenticatie: wie ben je? Dat is het inloggen zelf, met e-mail en wachtwoord, een link per mail of een Google-account.
  • Autorisatie: wat mag je? Dat bepaalt welke gegevens en functies iemand na het inloggen mag gebruiken.

Een voorbeeld uit het dagelijks leven: een toegangspas laat je het kantoorgebouw in (authenticatie), maar bepaalt niet in welke kamers je mag komen (autorisatie). Een goed gebouw controleert bij elke deur opnieuw.

Veel gevibecodede apps hebben het eerste goed geregeld en het tweede niet. Iedereen moet inloggen, maar wie eenmaal binnen is, kan via een kleine omweg bij alles. Autorisatie hoort in de database (bij Supabase met Row Level Security (opent in een nieuw tabblad)1) of in code op de server. Hoe dat werkt, lees je in Is mijn app veilig?

Bouw je inloggen zelf of gebruik je een dienst?

Kort: Gebruik een dienst, zoals de ingebouwde dienst van je tool, Supabase Auth of een losse dienst, want veilig inloggen bouwen is vakwerk.

Gebruik een dienst. Wachtwoorden veilig opslaan, inlogpogingen beperken, sessies laten verlopen en wachtwoord-herstel veilig maken is vakwerk. Een inlogdienst heeft dat al opgelost.

Opties die veel gebruikt worden:

  • De ingebouwde dienst van je tool. Lovable en Replit hebben bijvoorbeeld inloggen in hun eigen back-end.
  • Supabase Auth, als je Supabase als database gebruikt.
  • Een losse dienst zoals Clerk, Auth0 of Firebase Authentication.

Wat je in elk geval niet wilt: een tabel "gebruikers" met een kolom "wachtwoord" waarin de wachtwoorden leesbaar staan (opent in een nieuw tabblad)2. Staat dat in je project, dan moet het over naar een inlogdienst. Dat zetten we voor je om.

Let bij de keuze ook op waar de dienst je gebruikersgegevens bewaart. E-mailadressen en namen zijn persoonsgegevens. Zie Waar staat je data?

Welke manier van inloggen kies je?

Kort: Je kiest uit e-mail en wachtwoord, een inloglink per mail of inloggen met Google, Apple of Microsoft; één of twee manieren is een goed begin.

  • E-mail en wachtwoord. Bekend voor iedereen. Wachtwoord vergeten moet dan wel goed geregeld zijn.
  • Een inloglink per mail (magic link). Geen wachtwoord om te onthouden. Werkt alleen zo goed als de bezorging van je mail.
  • Inloggen met Google, Apple of Microsoft. Snel voor de gebruiker, maar vraagt extra instellingen bij die partijen.

Eén of twee manieren is een goed begin. Elke extra manier moet ingesteld, getest en onderhouden worden.

Verstuurt je app mail, zoals een inloglink of een bevestiging, dan moet die ook aankomen en niet in de spam belanden. Mail vanaf je eigen domein vraagt een paar instellingen; zie Hosting en een eigen domein.

Wat moet er rond accounts nog meer geregeld zijn?

Kort: Ook e-mailbevestiging, wachtwoord vergeten, uitloggen, account verwijderen, rollen op de server en eventueel uitnodigen en teams moeten geregeld zijn.

Een werkend inlogscherm is het begin. Deze onderdelen horen er ook bij:

  • E-mailadres bevestigen. Zo weet je dat het adres echt van de gebruiker is.
  • Wachtwoord vergeten. De link moet werken, na een tijd verlopen en maar één keer bruikbaar zijn (opent in een nieuw tabblad)3.
  • Uitloggen. Ook op een gedeelde computer moet uitloggen echt uitloggen.
  • Account verwijderen. Onder de AVG mogen mensen vragen om hun gegevens te laten wissen (opent in een nieuw tabblad)4. Dat moet kunnen, liefst zonder handwerk in de database. Zie Privacy en de AVG.
  • Rollen. Heb je beheerders en gewone gebruikers? Dan hoort de rol op de server vast te liggen, niet in de browser. Een gebruiker mag zichzelf nooit beheerder kunnen maken door iets in zijn profiel te wijzigen.
  • Uitnodigen en teams. Kunnen gebruikers anderen toevoegen? Dan moet ook geregeld zijn wat er gebeurt als iemand het team verlaat.

Hoe weet je of gebruikers elkaars gegevens niet zien?

Kort: Dat blijkt pas als iemand met een tweede account bij de gegevens van een ander probeert te komen; die test hoort na elke grote wijziging opnieuw.

Dat zie je niet als je je app zelf gebruikt. Het blijkt pas als iemand met een tweede account probeert bij de gegevens van een ander te komen: via een lijst, via het adres van een pagina, of door iets te wijzigen of te verwijderen. Lukt dat, dan is de autorisatie niet goed (opent in een nieuw tabblad)5.

Eén keer controleren is niet genoeg. Een AI die een nieuwe functie bouwt, kan een bestaande regel ongemerkt ruimer maken. Daarom hoort de test na elke grote wijziging opnieuw. Wij doen die test voor je, met meerdere accounts en ook uitgelogd, en zetten dicht wat openstaat. Meer over testen lees je in Testen voordat je live gaat.

Wat we voor je regelen

Je hoeft inloggen niet zelf uit te zoeken. In een gratis adviesgesprek kijken we hoe het in jouw app geregeld is en zeggen we wat er moet gebeuren.

  • We zetten inloggen op een bestaande inlogdienst, ook als je app nu zelf wachtwoorden bewaart.
  • We regelen e-mailbevestiging, wachtwoord vergeten en uitloggen, en testen of ze werken.
  • We zorgen dat gebruikers hun account kunnen laten verwijderen, en hun gegevens daarmee ook.
  • We leggen rollen zoals beheerder vast op de server, zodat niemand zichzelf meer rechten kan geven.
  • We testen met meerdere accounts of gebruikers elkaars gegevens niet kunnen zien, openen of wijzigen.
Doe de check

Twee minuten, gratis. Daarna plan je een adviesgesprek, als je wilt.

Veelgestelde vragen

Is inloggen met Google veiliger dan met een wachtwoord?

Het scheelt jou het beheer van wachtwoorden, en Google heeft zelf extra beveiliging. Maar het vraagt instellingen en niet iedereen wil een Google-account koppelen. Veel apps bieden beide.

Heb ik tweestapsverificatie nodig?

Voor beheerders van je app is het verstandig. Voor gewone gebruikers hangt het af van hoe gevoelig de gegevens zijn. Veel inlogdiensten bieden het als optie.

Mag ik e-mailadressen van gebruikers voor een nieuwsbrief gebruiken?

Niet zomaar. Voor een nieuwsbrief heb je meestal aparte toestemming nodig. Lees Privacy en de AVG en de uitleg van de Autoriteit Persoonsgegevens.

Moet elke gebruiker een eigen account hebben?

Als gebruikers gegevens opslaan die van hen zijn, wel. Gedeelde accounts maken het onmogelijk om te zien wie wat deed en om gegevens per persoon te verwijderen.

Bronnen

  1. Supabase Row Level Security (opent in een nieuw tabblad) Geraadpleegd op 6 oktober 2026
  2. OWASP Password Storage - OWASP Cheat Sheet Series (opent in een nieuw tabblad) Geraadpleegd op 6 oktober 2026
  3. OWASP Forgot Password - OWASP Cheat Sheet Series (opent in een nieuw tabblad) Geraadpleegd op 6 oktober 2026
  4. Autoriteit Persoonsgegevens Recht op gegevens verwijderen (opent in een nieuw tabblad) Geraadpleegd op 6 oktober 2026
  5. OWASP A01 Broken Access Control (opent in een nieuw tabblad) Geraadpleegd op 6 oktober 2026

Vibecodechecker legt uit en geeft geen juridisch of fiscaal advies. We controleren elke regel tegen de officiële bron en zetten de datum erbij. Zo schrijven we.

Dit moet je weten

  • Veel gevibecodede apps regelen wel wie iemand is, maar niet wat iemand na het inloggen mag.
  • Autorisatie hoort in de database, bij Supabase met Row Level Security, of in code op de server.
  • Staan wachtwoorden leesbaar in een eigen tabel, dan moet je app over naar een inlogdienst.
  • Elke extra manier van inloggen moet ingesteld, getest en onderhouden worden.
  • Een gebruiker mag zichzelf nooit beheerder kunnen maken door iets in zijn profiel te wijzigen.