JSON Web Token (JWT)
JWT staat voor JSON Web Token en is een compacte, versleutelde manier om informatie veilig uit te wisselen tussen systemen. In de praktijk wordt het vaak gebruikt voor authenticatie: wanneer een gebruiker inlogt, krijgt die een token mee die dient als bewijs van identiteit bij volgende verzoeken. JWT is een digitale toegangskaart die je meeneemt zolang je sessie geldig is. Ideaal voor moderne software-toepassingen die snel, schaalbaar én veilig willen blijven.
Inhoudsopgave
Eén keer bewijzen, daarna gewoon doorlopen
Wanneer een gebruiker inlogt op een webapplicatie, wordt er op de server een JWT aangemaakt. Die bevat versleutelde informatie, zoals een gebruikers-ID, een rol (bijvoorbeeld admin of user), en een verloopdatum. Deze token wordt daarna opgeslagen in bijvoorbeeld localStorage of een browser-cookie.
Bij elk volgend verzoek stuurt de browser die token automatisch mee. De server hoeft dus niet elke keer opnieuw te checken in een database of je bent wie je zegt dat je bent. Sneller, schaalbaarder en veiliger – perfect voor cloudgebaseerde software.
Wat zit er in een JSON Web Token?
Een JWT bestaat uit drie delen:
- Header: Welke algoritmes zijn gebruikt?
- Payload: De daadwerkelijke informatie (bijv. user ID, rechten, tijdstempel).
- Signature: Een cryptografische handtekening die controleert of het token geldig en onveranderd is.
Samen vormen ze een gecodeerde string. Zonder de juiste sleutel kun je die token niet vervalsen en dat maakt JWT geschikt voor beveiligde communicatie binnen je softwareomgeving.
Geen sessie nodig om te weten wie je bent
JWT is ideaal voor stateless authenticatie: de server hoeft geen sessies op te slaan en de gebruiker kan op meerdere apparaten of platformen tegelijkertijd ingelogd blijven.
Denk aan:
- Single Sign-On (SSO)
- API-authenticatie
- Mobile apps
- Server-to-server communicatie
Vooral in moderne softwarearchitecturen, zoals microservices of serverless toepassingen, komt JWT goed tot zijn recht. Maar het is geen magische oplossing. Je moet scherp blijven op beveiliging, zoals versleuteling, expiratie en veilige opslag.
Veelgestelde vragen
Niet helemaal. Een API key is meestal statisch. Een JWT bevat dynamische, versleutelde informatie en heeft meestal een beperkte geldigheidsduur.
Vaak in localStorage, sessionStorage of een veilige cookie. Dit is afhankelijk van de eisen van je software en je beveiligingsstrategie.
Dat bepaal je zelf. Vaak tussen de 15 minuten en een paar uur. Daarna moet je een nieuwe token ophalen (via een refresh token, bijvoorbeeld).
Ja, mits goed geïmplementeerd. Denk aan HTTPS, short-lived tokens, geen gevoelige data in de payload en veilige opslag.
Gerelateerde begrippen
- Abstraction
- Access Control
- Affiliate link
- AJAX
- Algoritme
- Apache
- API
- App
- Big data
- Binary Tree
- Bitbucket
- Blockchain
- Branch
- Bug
- Caching
- ChatGPT
- Cloudflare
- Codebase
- Content Delivery Network (CDN)
- Content Management Systeem
- Cookietijd
- Cross-Site Scripting (XSS)
- Customer Relationship Management (CRM)
- Database Management System (DBMS)