Authenticatie
Overzicht
Klantel gebruikt JWT-cookies voor authenticatie, niet API-keys. De sessie wordt server-side opgeslagen voor intrekkingsmogelijkheid.
Sessie-mechanisme
POST /login
↓
JWT aanmaken (HS256, 8 uur geldig)
↓
httpOnly cookie "klantel-session" plaatsen
↓
Elke request: cookie automatisch meegestuurd
↓
Server verifieert JWT + controleert sessie in DB
Cookie-eigenschappen
| Eigenschap | Waarde |
|---|---|
| Naam | klantel-session |
| Algoritme | HS256 |
| Geldigheid | 8 uur |
| httpOnly | Ja (niet toegankelijk voor JavaScript) |
| Secure | Ja (alleen HTTPS) |
| SameSite | lax |
Intrekbare sessies
Klantel slaat sessies ook op in de database. Dit maakt het mogelijk:
- Alle sessies van een gebruiker te beëindigen bij wachtwoordwijziging
- Sessies te intrekken bij verdacht gedrag
- Inzicht te geven in actieve sessies
Inloggen
POST /login
Content-Type: application/x-www-form-urlencoded
loginNaam=gebruikersnaam&wachtwoord=...
Bij succes: 302 Found + Set-Cookie: klantel-session=...
Uitloggen
POST /logout
De sessie wordt onmiddellijk ingetrokken in de database. De cookie wordt verwijderd.
Server Actions en beveiliging
Server Actions zijn publieke HTTP-eindpunten. De cookie beschermt hen niet automatisch. Elke action begint met een expliciete sessiecheck:
const { tenantId, gebruikerId } = await requireSession();
// of voor beheerdersfuncties:
const { tenantId } = await requireAdmin();