JWT-client

Maak, onderteken en verifieer JSON Web Tokens vanuit Delphi/C++Builder. HMAC-, RSA- en ECDSA-handtekeningen, versleutelde JWE in PASETO-stijl, automatisch vernieuwen en eenvoudige integratie met TsgcHTTP2Client / TsgcHTTPComponentClient.

TsgcHTTP_JWT_Client

Onderteken HS256/HS384/HS512-, RS256/RS384/RS512-, ES256/ES384-, EdDSA-tokens; decodeer inkomende JWT's; vernieuw automatisch rond verloop; combineer met de HTTP- en HTTP/2-clients via Authentication.Token.JWT.

Componentklasse

TsgcHTTP_JWT_Client

Protocol

RFC 7519 (JWT)

Platforms

Windows, macOS, Linux, iOS, Android

Editie

Professional / Enterprise

Configureer header + payload, onderteken, koppel

Stel Header.alg in, Payload.iss / iat / exp, laad de signing key en koppel daarna de JWT-client als bearer-tokenbron aan je HTTP-/HTTP/2-/WebSocket-component.

uses
  sgcHTTP, sgcBase_Helpers;

var
  JWT: TsgcHTTP_JWT_Client;
begin
  JWT := TsgcHTTP_JWT_Client.Create(nil);
  JWT.JWTOptions.Header.alg := jwtES256;
  JWT.JWTOptions.Header.kid := 'apple-key-id';
  JWT.JWTOptions.Payload.iss := 'team-id';
  JWT.JWTOptions.Payload.iat := StrToInt64(GetDateTimeUnix(Now, False));
  JWT.JWTOptions.Algorithms.ES.PrivateKey.LoadFromFile('AuthKey_XXX.p8');
  JWT.JWTOptions.RefreshTokenAfter := 40 * 60; // elke 40 min automatisch uitgeven

  ShowMessage(JWT.Token);
end;
// uses: sgcHTTP
TsgcHTTP_JWT_Client *JWT = new TsgcHTTP_JWT_Client(this);
JWT->JWTOptions->Header->alg = jwtES256;
JWT->JWTOptions->Header->kid = "apple-key-id";
JWT->JWTOptions->Payload->iss = "team-id";
JWT->JWTOptions->Algorithms->ES->PrivateKey->LoadFromFile("AuthKey_XXX.p8");

ShowMessage(JWT->Token);

Wat zit erin

Een getypeerd JWT-maken-en-verifiëren-component met HMAC-, RSA-, ECDSA- en EdDSA-handtekeningen, automatische vernieuwing en een nette overdracht naar de HTTP-/HTTP/2-/WebSocket-componenten.

Algoritmen

JWTOptions.Header.alg selecteert HS256/384/512, RS256/384/512, ES256/384/512, PS256/384/512 of EdDSA. Sleutels worden geladen vanuit PEM, P8 of in-memory streams.

Standaardclaims

JWTOptions.Payload.iss, sub, aud, exp, nbf, iat en jti zijn getypeerde properties volgens RFC 7519 — plus een vrij invulbare CustomClaims voor vendor-uitbreidingen.

Automatisch vernieuwen

RefreshTokenAfter vertelt het component een nieuwe JWT uit te geven na N seconden — handig voor APNs-ES256-tokens die Apple binnen het uur geroteerd wil zien.

Decoderen & verifiëren

Decode(token) parsed een inkomende JWT en verifieert de handtekening tegen de geconfigureerde sleutels; OnVerify wordt geactiveerd met succes/falen en de geparste payload.

JWE-ondersteuning

Versleutelde JWT's (JWE) volgens RFC 7516 worden ondersteund: AES-CBC-, AES-GCM-, RSA-OAEP- en ECDH-ES-key-wrapping.

Direct bruikbaar voor HTTP/2

Combineer met TsgcHTTP2Client of TsgcHTTPComponentClient door Authentication.Token.JWT in te stellen — elke uitgaande aanvraag krijgt een vers ondertekend bearer-token.

Specificaties & referenties

Gezaghebbende bronnen voor de standaarden die dit component implementeert.

Documentatie & demo's

Deep-link naar de componentreferentie, pak het direct uitvoerbare demoproject en download de proefversie.

Online help — TsgcHTTP_JWT_Client Volledige property-, methode- en event-referentie voor dit component.
Demoproject — Demos\20.HTTP_Protocol\05.JWT Direct uitvoerbaar voorbeeldproject. Zit in het sgcWebSockets-package — download de proefversie hieronder.
Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronreferenties — alleen dit component.
Gebruikershandleiding (PDF) Uitgebreide handleiding die elk component in de bibliotheek behandelt.

Klaar om ondertekende JWT's uit te geven?

Download de gratis proefversie en voeg JWT-ondertekening toe aan je Delphi-toepassingen.