TsgcHTTP_JWT_Server component.
Het TsgcHTTP_JWT_Server-component stelt u in staat JWT-tokens te decoderen en te valideren die zijn ontvangen in de WebSocket-handshake bij gebruik van het WebSocket-protocol, of als HTTP-header bij gebruik van het HTTP-protocol.
U kunt de volgende eigenschappen configureren in de eigenschap JWTOptions van het component:
Als de Handtekening wordt gevalideerd met behulp van een publieke sleutel (RS- en ES-algoritmen), stel de waarde in op de eigenschap PublicKey van het Algoritme.
Als de handtekening wordt gevalideerd met behulp van een geheim (HS-algoritmen), stelt u de waarde in via de eigenschap Secret van het algoritme.
Om JWT-tokens te valideren, koppelt u gewoon een TsgcHTTP_JWT_Server-instantie aan de eigenschap Authentication.JWT.JWT van de WebSocket/HTTP-server.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Port := 80;
oJWT := TsgcHTTP_JWT_Server.Create(nil);
oJWT.JWTOptions.Algorithms.RS.PublicKey.Text := 'public key here';
oServer.Authorization.Enabled := True;
oServer.Authorization.JWT.JWT := oJWT;
oServer.Active := True;
Zodra de handtekening is geverifieerd, valideert de server de geregistreerde claims van de Payload. De claims exp, nbf en iat worden gecontroleerd, eerdere versies verifieerden alleen de handtekening, waardoor een verlopen token werd geaccepteerd. Een claim die niet in de Payload aanwezig is, wordt niet door de uitgever bevestigd en wordt niet gevalideerd.
De controles worden geconfigureerd in de eigenschap JWTOptions.Validations:
Expiration: weigert het token wanneer de claim exp in het verleden ligt. Standaard ingeschakeld, stel Validations.Expiration := False in om de vervalcontrole uit te schakelen.
NotBefore: weigert het token wanneer de claim nbf in de toekomst ligt. Standaard ingeschakeld.
Issued: weigert het token wanneer de claim iat in de toekomst ligt. Standaard ingeschakeld.
Leeway: seconden klokafwijking die zijn toegestaan wanneer de claims exp, nbf en iat met de huidige tijd worden vergeleken. De standaardwaarde is 60 seconden, stel deze in op nul om de claims zonder speling te vergelijken.