---
title: Simple OTP Login — Gebruikershandleiding
description: "**Versie 2.1.0****Vragen of hulp nodig?**Neem gerust contact op via [hallo@kyzoe.be](mailto:hallo@kyzoe.be) of bezoek [kyzoe.be](https://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…"
url: "https://kyzoe.be/docs/simple-otp-login-gebruikershandleiding/"
updated: "2026-02-23"
category: Nieuws
---

# Simple OTP Login — Gebruikershandleiding

**Versie 2.1.0****Vragen of hulp nodig?**Neem gerust contact op via [hallo@kyzoe.be](mailto:hallo@kyzoe.be) of bezoek [kyzoe.be](https://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.

```
Loginpagina
    │
    ▼
[E-mailadres of gebruikersnaam invullen]
    │
    ▼
E-mail verstuurd met inlogcode
    │
    ▼
[Code invoeren op de loginpagina]
    │
    ▼
Ingelogd ✓
```

> **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

```
Onderwerp: [Mijn Website] Your login code

Hello Jan de Vries,

Your one-time login code is:

  482971

This code is valid for 10 minutes.

If you did not attempt to log in, you can safely ignore this email.

— Mijn Website
```

> **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:

```
[simple_otp_login_form]
```

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 `[simple_otp_login_form]` 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 `[simple_otp_login_form]` 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](https://kyzoe.be).*
