Snelle, betrouwbare & betaalbare hosting uit België

Kyzoe Hosting
Kyzoe Hosting
Categorieën bekijken

Simple OTP Login — Gebruikershandleiding

11 min read

Versie 2.1.0 Vragen of hulp nodig? Neem gerust contact op via hallo@kyzoe.be of bezoek kyzoe.be.

1. Wat is Simple OTP Login?

Simple OTP Login vervangt het klassieke wachtwoord-systeem van WordPress door een eenmalige inlogcode die automatisch per e-mail verstuurd wordt. OTP staat voor One-Time Password — een code die maar één keer geldig is en na gebruik of na het verlopen van de geldigheidsperiode automatisch vervalt.

Waarom is dit beter dan een wachtwoord?

Een wachtwoord is iets wat je onthoudt — en kan vergeten, raden, stelen of lekken. Een eenmalige code wordt op het moment van inloggen aangemaakt en verstuurd naar een e-mailadres waar alleen de rechtmatige eigenaar bij kan. Geen wachtwoord betekent ook geen wachtwoord dat gestolen kan worden.

Samengevat:

  • Gebruikers hebben geen wachtwoord meer nodig
  • Inloggen werkt via e-mail — snel en vertrouwd
  • Verlopen codes zijn automatisch onbruikbaar
  • Brute-force aanvallen worden actief geblokkeerd
  • Volledig configureerbaar naar de noden van uw website

2. Hoe werkt het inloggen?

Het inlogproces verloopt altijd in twee stappen.

Stap 1 — Code aanvragen

De bezoeker gaat naar de loginpagina en vult zijn e-mailadres of gebruikersnaam in. Na het klikken op Send login code stuurt de plugin automatisch een e-mail met een inlogcode naar het bijbehorende adres.

Stap 2 — Code invoeren

De bezoeker vult de ontvangen code in op de loginpagina. Als de code correct en nog geldig is, wordt de gebruiker ingelogd en doorgestuurd naar het dashboard of de ingestelde doorstuurpagina.

Let op: Wanneer de instelling Require OTP login is ingeschakeld (de standaardinstelling), is inloggen met een wachtwoord volledig uitgeschakeld voor alle gebruikers — inclusief de beheerder.

3. Installatie

Via het WordPress-dashboard (aanbevolen)

  1. Ga naar Plugins → Nieuwe plugin toevoegen
  2. Klik op Plugin uploaden
  3. Selecteer het bestand simple-otp-login.zip
  4. Klik op Nu installeren, daarna op Activeren

De plugin is direct actief na het activeren. Wachtwoord-login is onmiddellijk uitgeschakeld.

Handmatig via FTP

  1. Pak het zip-bestand uit op uw computer
  2. Upload de map simple-otp-login naar /wp-content/plugins/ op uw server
  3. Ga in het WordPress-dashboard naar Plugins en activeer Simple OTP Login 

⚠️ Belangrijk vóór activatie

Zorg dat WordPress e-mails kan versturen vóór u de plugin activeert. Als dat niet het geval is, kunt u na activatie niet meer inloggen omdat de inlogcode nooit aankomt.

Twijfelt u? Installeer eerst een SMTP-plugin zoals WP Mail SMTP of FluentSMTP en test of e-mails aankomen. Daarna kunt u Simple OTP Login veilig activeren.

4. Instellingen — overzicht

Alle instellingen vindt u via het WordPress-dashboard onder Instellingen → Simple OTP Login.

De instellingenpagina is onderverdeeld in vier tabbladen:

Tabblad Wat u hier instelt
General Codelengte, geldigheidsperiode, OTP verplicht of optioneel
Email Settings Onderwerp en inhoud van de e-mail met de inlogcode
IP Blocks Overzicht van geblokkeerde IP-adressen, deblokkeren
Login Log Alle loginpogingen bekijken, filteren en beheren

5. Tabblad: Algemeen

Instellingen → Simple OTP Login → General

Dit tabblad bepaalt het gedrag van de inlogcode zelf.

Codelengte

Kies hoeveel cijfers de inlogcode bevat: 4, 6 of 8 cijfers.

Keuze Voorbeeld Gebruik
4 cijfers 4829 Laagste drempel — makkelijk over te typen
6 cijfers 482971 Standaard — goede balans
8 cijfers 48297134 Hoogste zekerheid — iets meer typewerk

De inlogpagina past de invoervelden automatisch aan op basis van de gekozen lengte.

Geldigheidsperiode:

Hoe lang is een verzonden code geldig?

Keuze Toelichting
5 minuten Strenger — gebruiker moet snel zijn
10 minuten Standaard — ruim maar niet te lang
15 minuten Soepeler — meer tijd voor trage e-mailbezorging

Na het verlopen van de periode is de code onbruikbaar. De gebruiker kan via de terugknop op de loginpagina eenvoudig een nieuwe code aanvragen.

Aanbeveling: Gebruik 10 minuten als standaardinstelling. Overweeg 15 minuten als uw gebruikers regelmatig klagen dat codes verlopen zijn — dit kan wijzen op trage e-mailbezorging.

OTP verplicht (toggle)

Deze schakelaar bepaalt of inloggen met een wachtwoord nog mogelijk is.

Ingeschakeld (standaard — aanbevolen)

Het standaard WordPress-loginformulier wordt volledig verborgen. Inloggen met een wachtwoord is geblokkeerd voor alle gebruikers. De enige manier om in te loggen is via de eenmalige code.

Uitgeschakeld

Het OTP-formulier wordt getoond boven het standaard WordPress-formulier. Gebruikers kunnen kiezen: inloggen via de code óf via hun wachtwoord. Op de loginpagina staat een duidelijke scheidingslijn tussen beide opties.

⚠️ Waarschuwing: Wanneer de toggle is uitgeschakeld, blijft wachtwoord-login actief. In de admin verschijnt een gele waarschuwingsbanner als herinnering. Wij raden aan de toggle ingeschakeld te laten voor maximale beveiliging.

6. Tabblad: E-mail instellingen

Instellingen → Simple OTP Login → Email Settings

Hier past u de e-mail aan die gebruikers ontvangen wanneer ze een inlogcode aanvragen.

Onderwerp en berichttekst

U kunt zowel het onderwerp als de volledige berichttekst vrij aanpassen. De tekst ondersteunt variabelen (ook wel placeholders genoemd) die automatisch vervangen worden door de juiste waarden op het moment van verzending.

Beschikbare variabelen

Variabele Wordt vervangen door
{otp} De inlogcode zelf (bijv. 482971)
{name} De weergavenaam van de gebruiker
{site} De naam van uw website
{expires} Het aantal minuten dat de code geldig is

Verplicht: De variabele {otp} moet altijd aanwezig zijn in de berichttekst. Zonder deze variabele ontvangt de gebruiker geen code en kan hij niet inloggen.

Live voorbeeld

Terwijl u het onderwerp of de berichttekst aanpast, toont het paneel rechts (of eronder) een live voorbeeld van hoe de e-mail er voor de ontvanger uitziet. De variabelen worden hierin al ingevuld met voorbeeldwaarden.

Standaardtekst herstellen

Via de knop Restore defaults zet u het onderwerp en de berichttekst terug naar de oorspronkelijke teksten die bij de plugin zijn meegeleverd. Er verschijnt een bevestigingsdialoog voordat de wijziging doorgevoerd wordt.

Voorbeeld van een standaard e-mail

Tip: Wilt u de e-mail volledig in het Nederlands? Vervang de berichttekst door uw eigen Nederlandse tekst en gebruik dezelfde variabelen. De knop Save settings slaat uw aanpassingen op.

7. Tabblad: IP-blokkades

Instellingen → Simple OTP Login → IP Blocks

Wanneer iemand herhaaldelijk een verkeerde code invoert, blokkeert de plugin automatisch het IP-adres van die bezoeker. Dit tabblad geeft u een volledig overzicht en laat u blokkades handmatig opheffen.

Statistieken

Bovenaan het tabblad ziet u drie tellers:

  • Currently blocked — aantal IP-adressen dat op dit moment actief geblokkeerd is
  • Failed attempts — IP-adressen met mislukte pogingen die nog niet geblokkeerd zijn
  • Total in log — totaal aantal geregistreerde IP-adressen

Actief geblokkeerde IP-adressen

In de tabel Currently blocked IP addresses ziet u per IP-adres:

Kolom Uitleg
IP address Het geblokkeerde IP-adres
Attempts Aantal mislukte pogingen
Blocked until Tijdstip waarop de blokkade automatisch vervalt
Time remaining Afteltimer die live bijwerkt in de browser
Last attempt Tijdstip van de laatste poging
Action Knop om de blokkade direct op te heffen

Via de knop Unblock heft u de blokkade van één specifiek IP-adres op. Via Unblock all (rechtsboven in de tabel) heft u alle actieve blokkades tegelijk op — er verschijnt een bevestigingsdialoog.

IP-adressen met mislukte pogingen (niet geblokkeerd)

Hieronder vindt u IP-adressen die mislukte pogingen hebben geregistreerd maar de drempel van 5 pogingen nog niet bereikt hebben. Via de knop Remove from log verwijdert u zo’n adres uit het overzicht.

Hoe werkt de automatische blokkade?

Na 5 opeenvolgende mislukte inlogpogingen — zowel via verkeerde codes als via het aanvragen van een code voor een niet-bestaand account — blokkeert de plugin het IP-adres automatisch voor 15 minuten.

Na het verstrijken van de bloktijd wordt het adres automatisch gedeblokkeerd. U hoeft hier niets voor te doen.

8. Tabblad: Loginlog

Instellingen → Simple OTP Login → Login Log

Het loginlog registreert elke inlogpoging die via de plugin verloopt — geslaagd of mislukt. Dit geeft u een volledig inzicht in wie er inlogt op uw website en of er verdachte activiteit is.

Statistieken

Bovenaan het tabblad staan vier tellers:

Teller Betekenis
Total attempts Alle inlogpogingen in het log
Successful Succesvol ingelogde pogingen
Failed Mislukte pogingen (verkeerde code, verlopen code)
Blocked Geblokkeerde pogingen (IP of account was al geblokkeerd)

Logentries bekijken

De tabel toont per inlogpoging de volgende informatie:

Kolom Uitleg
Time Datum en tijdstip van de poging
User Gebruikersnaam die werd ingevoerd
IP address IP-adres van de bezoeker
Status Succesvol / Mislukt / Geblokkeerd (kleurgecodeerd)
Reason Omschrijving van de fout bij een mislukte poging

Rijen worden visueel onderscheiden door een gekleurde streep aan de linkerkant:

  • 🟢 Groen — Succesvol ingelogd
  • 🟠 Oranje — Mislukte poging
  • 🔴 Rood — Geblokkeerde poging

Filteren op status

Via de filterknoppen boven de tabel kunt u de weergave beperken tot één specifieke status:

  • All — alle pogingen
  • Successful — alleen geslaagde logins
  • Failed — alleen mislukte pogingen
  • Blocked — alleen geblokkeerde pogingen

Paginering

Bij veel logentries worden de resultaten opgedeeld in pagina’s van 50 per pagina. Onderaan de tabel vindt u navigatieknoppen om door de pagina’s te bladeren.

Bewaartijd instellen

Standaard worden logentries 30 dagen bewaard. Daarna worden ze automatisch opgeruimd. U kunt de bewaartijd aanpassen naar een waarde tussen 1 en 365 dagen.

Wijzig de waarde in het veld Keep log entries for en klik op Save.

Log leegmaken

Via de knop Clear login log verwijdert u alle logentries in één keer. Er verschijnt een bevestigingsdialoog. Let op: deze actie is onomkeerbaar.

9. Inlogformulier op een eigen pagina

Standaard toont Simple OTP Login het inlogformulier op de standaard WordPress-loginpagina (/wp-login.php). Wilt u het formulier op een eigen pagina tonen — bijvoorbeeld een pagina met uw eigen huisstijl — dan kunt u de volgende shortcode gebruiken:

Plak deze shortcode in de inhoud van een willekeurige WordPress-pagina. Het formulier verschijnt automatisch op die locatie. Is de gebruiker al ingelogd, dan toont de shortcode een melding dat hij al is aangemeld.

Gebruik:

  1. Maak een nieuwe pagina aan (bijv. Inloggen)
  2. Voeg de shortcode

    Sign in with a one-time code

    You will receive a 6-digit code by email. Valid for 10 minutes.

    toe in de editor
  3. Publiceer de pagina

Tip: U kunt de shortcode ook gebruiken in widgetgebieden of in paginabouwers zoals Elementor of Divi.

10. Beveiliging — hoe werkt de bescherming?

Simple OTP Login bevat meerdere lagen van bescherming tegen misbruik.

Eenmalige codes

Elke code werkt maar één keer. Na succesvolle invoer wordt de code direct ongeldig gemaakt. Iemand die dezelfde code onderschept kan er niets mee doen.

Automatisch verlopen

Elke code heeft een beperkte geldigheidsperiode (instelbaar: 5, 10 of 15 minuten). Verlopen codes worden geweigerd — er is geen manier om een verlopen code te hergebruiken.

Accountblokkade na mislukte pogingen

Na 5 opeenvolgende foute codes wordt het gebruikersaccount automatisch 15 minuten vergrendeld. Tijdens de vergrendeling kunnen er geen nieuwe codes aangevraagd of ingevoerd worden voor dat account.

IP-blokkade

Naast de accountblokkade wordt ook het IP-adres van de bezoeker geblokkeerd na 5 mislukte pogingen. Dit voorkomt dat iemand met een nieuw account opnieuw kan proberen.

Privacy bij onbekende accounts

Wanneer iemand een code aanvraagt voor een e-mailadres of gebruikersnaam die niet bestaat, toont de plugin altijd dezelfde neutrale melding: “Als dit account bestaat, ontvangt u een e-mail.” Dit voorkomt dat aanvallers kunnen achterhalen welke accounts wél bestaan op uw website.

Timing-safe vergelijking

Bij het controleren van de ingevoerde code gebruikt de plugin een speciale methode (hash_equals) die altijd even lang duurt, ongeacht of de code goed of fout is. Dit beschermt tegen timing attacks — aanvallen waarbij men op basis van de reactietijd probeert te raden of een code klopt.

CSRF-beveiliging

Alle formulieren zijn beveiligd met een WordPress nonce — een eenmalige beveiligingstoken die voorkomt dat kwaadaardige websites namens uw bezoekers formulieren kunnen indienen.

11. Veelgestelde vragen

Kunnen gebruikers nog inloggen met hun wachtwoord?
Nee, niet wanneer de instelling Require OTP login is ingeschakeld (de standaard). Wachtwoord-login is dan volledig geblokkeerd. U kunt dit gedrag aanpassen in het tabblad General.

Wat als ik zelf per ongeluk ben uitgelogd en geen e-mail ontvang?
Controleer eerst uw spam- of junkmail-map. Als e-mails structureel niet aankomen, vraag dan uw webhost of Kyzoe om tijdelijk de plugin te deactiveren via FTP of de hostingomgeving, zodat u via uw wachtwoord kunt inloggen en het e-mailprobleem kunt oplossen.

Wat als een gebruiker zijn e-mailadres niet meer heeft?
Als beheerder kunt u het e-mailadres van een gebruiker wijzigen via Gebruikers → Alle gebruikers in het WordPress-dashboard. De gebruiker kan daarna inloggen met het nieuwe adres.

Werkt dit ook met WooCommerce of andere loginformulieren?De plugin werkt op de standaard WordPress-loginpagina. Voor loginformulieren van WooCommerce of andere plugins raden wij aan de shortcode

Sign in with a one-time code

You will receive a 6-digit code by email. Valid for 10 minutes.

te gebruiken op een aparte pagina.

Kunnen meerdere gebruikers hetzelfde IP-adres hebben?
Ja, dit is mogelijk bij kantooromgevingen of gedeelde netwerken. Als één gebruiker een account blokkeert, kan het IP-adres tijdelijk geblokkeerd zijn voor alle gebruikers op dat netwerk. U kunt het IP-adres handmatig deblokkeren via het tabblad IP Blocks.

Hoe lang worden loginpogingen bewaard?
Standaard 30 dagen. U kunt dit aanpassen in het tabblad Login Log (instelbaar van 1 tot 365 dagen).

Is de plugin beschikbaar in het Nederlands?
De beheersinterface is in het Engels geschreven voor publicatie op de WordPress.org directory. De e-mail die gebruikers ontvangen kunt u volledig in het Nederlands aanpassen via het tabblad Email Settings.

Werkt de plugin op elke WordPress-hosting?
Ja, zolang WordPress versie 5.8 of hoger draait en PHP versie 7.4 of hoger beschikbaar is. De plugin gebruikt geen externe diensten — alles draait op uw eigen server.

Wat gebeurt er bij het verwijderen van de plugin?
Bij het verwijderen via het WordPress-dashboard worden automatisch alle plugin-instellingen, het loginlog en de databasetabel opgeruimd. Er blijft niets achter in uw database.

Simple OTP Login is ontwikkeld en onderhouden door Kyzoe.