Splync v1.0 naar Splync v1.1
Wanneer je je aanmeldt voor Splync, wordt je gevraagd je e-mailadres en wachtwoord in te voeren. Zoals ik in eerdere artikelen heb vermeld, had Splync v1.0 al basisbeveiligingsmaatregelen. Je gegevensoverdracht was beschermd door HTTPS. Onze server was beveiligd met SSH zodat niemand, behalve de ontwikkelaar, toegang kon krijgen. Je wachtwoord werd nooit in platte tekst opgeslagen maar gehasht in de database, zodat niemand het kon ontcijferen. Het geheim van v1.0 was echter dat het geen e-mailverificatie had in het aanmaakproces van accounts. Splync, als een MVP (Minimum Viable Product), werd zonder deze functie uitgebracht omdat de app zich nog in een stadium bevond waarin alleen mijn vrienden ervan wisten. In v1.0 controleerde de app simpelweg of het ingevoerde e-mailadres een '@' tussen letterreeksen bevatte en of het uniek was onder bestaande accounts.
Wat gebeurt er zonder e-mailverificatie
Als een app gebruikers toestaat een account aan te maken zonder hun identiteit te verifiëren, kan iemand makkelijk het e-mailadres van een ander gebruiken om een account aan te maken. Dat is precies wat er kan gebeuren. Hoewel dit niet betekent dat je gegevens zouden uitlekken, betekent het wel dat je je niet met je eigen e-mailadres kunt registreren als dat al gebruikt is. Bovendien zou iemand een account kunnen maken met een volledig fictief e-mailadres. Dit lijkt misschien niet ernstig, maar zou een ramp worden als de ontwikkelaar later probeert die gebruiker te factureren of te contacteren. Ik zou niet eens weten wie die persoon echt is! Dus, e-mailverificatie was de volgende stap voor Splync.
Hoe werkt e-mailverificatie
In Splync v1.1 stuurt de app automatisch een e-mail naar het ingevoerde adres wanneer een nieuwe gebruiker zich aanmeldt. Deze e-mail bevat een unieke, automatisch gegenereerde verificatielink. Door op die link te klikken, bevestigt de gebruiker dat hij echt toegang heeft tot dat e-mailaccount. Zodra geverifieerd, activeert de server het account van de gebruiker en slaat het op in de database als een geldig, geverifieerd gebruiker. Klinkt bekend, toch? Dit proces zorgt ervoor dat elke account in Splync toebehoort aan een echte, bereikbare persoon — een kleine maar essentiële stap richting het bouwen van een betrouwbare gemeenschap. Laten we eens nader bekijken hoe deze flow technisch wordt geïmplementeerd.
Technische implementatie van e-mailverificatie
De backend van Splync gebruikt Python/FastAPI, en de mobiele app is gebouwd met SwiftUI. De app verzorgt alleen de gebruikersinterface, terwijl de verificatielogica en gevoelige gegevens veilig op de server blijven. In v1.1 hebben we een standaard e-mailverificatiestap toegevoegd tussen 'ongeverifieerde gebruiker' en 'geverifieerde gebruiker'. Wanneer een nieuwe gebruiker zich aanmeldt, stuurt de app de ingevoerde gegevens naar de server. De server heeft een MariaDB-database. Het slaat de gebruiker op als ongeverifieerd in de database. Het wachtwoord wordt gehasht en opgeslagen, maar het account is nog niet actief. Op dat moment genereert de server ook een unieke verificatietoken met een vervaltijd. Vervolgens stuurt de server via een SMTP (Simple Mail Transfer Protocol) server een verificatie-e-mail met een veilige eenmalige link. Wanneer de gebruiker de link opent, controleert de server of de token geldig en niet verlopen is. Zodra geverifieerd, wordt het account actief, en kan de gebruiker normaal inloggen via de app. Dit houdt de authenticatie veilig en lichtgewicht.
Python? FastAPI? SwiftUI? SMTP? MariaDB
Als dit klinkt als een geheimtaal, maak je geen zorgen — het zijn gewoon de tools die het systeem laten samenwerken. Stel je de aanmeldingsflow van Splync voor als een klantenservicecentrum dat iemands identiteit verifieert. 'Mag ik uw naam en e-mailadres?' vraagt SwiftUI, de vriendelijke medewerker aan de balie. Je geeft haar je gegevens, en ze zegt: 'Zou je even kunnen wachten?' Ze stuurt ze meteen door naar FastAPI, het interne telefoonsysteem van het kantoor. FastAPI verbindt haar met Python, de back-officespecialist die verantwoordelijk is voor de verificatie. Python checkt met MariaDB, de klantendatabase, om je informatie veilig op te slaan — je status als 'ongeverifieerd' markeren. Dan vraagt Python aan SMTP, de externe boodschapper, om je een bevestigingsmail te sturen met een veilige link. Wanneer je de link aanklikt, controleert Python of deze geldig is en werkt je record in MariaDB bij naar 'geverifieerd'. Ten slotte laat FastAPI de medewerker weten dat je identiteit is bevestigd en je account nu actief is. Samen zorgen deze onderdelen ervoor dat Splync’s verificatieproces zowel menselijk als veilig is.
De volgende stap in de beveiligingsreis van Splync
E-mailverificatie lijkt misschien een kleine functie, maar het verandert alles als het gaat om vertrouwen. Het markeert het moment waarop Splync evolueert van een persoonlijk project onder vrienden naar een publieke app waar iedereen met vertrouwen aan kan deelnemen. Het versturen van een verificatielink via SMTP voelt zelfs als Splync’s eerste handdruk met een nieuwe gebruiker. Achter de schermen legt deze functie de basis voor toekomstige verbeteringen — wachtwoordresets, multi-factor authenticatie en accountherstel. Elke beveiligingslaag bouwt voort op de vorige. Met e-mailverificatie zet Splync v1.1 een betekenisvolle stap voorwaarts — waardoor gedeeld uitgavenbeheer niet alleen handig, maar ook echt betrouwbaar wordt.