Client JWT

Genera, firma e verifica JSON Web Token da Delphi/C++Builder. Firme HMAC, RSA ed ECDSA, JWE cifrati in stile PASETO, refresh automatico e facile integrazione con TsgcHTTP2Client / TsgcHTTPComponentClient.

TsgcHTTP_JWT_Client

Firma token HS256/HS384/HS512, RS256/RS384/RS512, ES256/ES384, EdDSA; decodifica i JWT in ingresso; effettua il refresh automatico vicino alla scadenza; abbinalo ai client HTTP e HTTP/2 tramite Authentication.Token.JWT.

Classe del componente

TsgcHTTP_JWT_Client

Protocollo

RFC 7519 (JWT)

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Professional / Enterprise

Configura header e payload, firma e collega

Imposta Header.alg, Payload.iss / iat / exp, carica la chiave di firma e poi collega il client JWT al tuo componente HTTP / HTTP/2 / WebSocket come fonte del bearer token.

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; // genera automaticamente ogni 40 min

  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);

Cosa contiene

Un componente JWT tipizzato per generare e verificare token con firme HMAC, RSA, ECDSA ed EdDSA, refresh automatico e un passaggio pulito ai componenti HTTP / HTTP/2 / WebSocket.

Algoritmi

JWTOptions.Header.alg seleziona HS256/384/512, RS256/384/512, ES256/384/512, PS256/384/512 o EdDSA. Le chiavi vengono caricate da PEM, P8 o stream in memoria.

Claim standard

JWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jti sono proprietà tipizzate che corrispondono alla RFC 7519 — più una CustomClaims libera per estensioni vendor.

Refresh automatico

RefreshTokenAfter indica al componente di generare un nuovo JWT dopo N secondi — utile per i token ES256 APNs che Apple si aspetta ruotati entro un'ora.

Decode e verifica

Decode(token) parsa un JWT in ingresso e verifica la firma rispetto alle chiavi configurate; OnVerify viene chiamato con esito positivo/negativo e il payload parsato.

Supporto JWE

I JWT cifrati (JWE) secondo la RFC 7516 sono supportati: AES-CBC, AES-GCM, RSA-OAEP e key wrapping ECDH-ES.

Drop-in per HTTP/2

Abbinalo a TsgcHTTP2Client o TsgcHTTPComponentClient impostando Authentication.Token.JWT — ogni richiesta in uscita riceve un bearer token firmato fresco.

Specifiche e riferimenti

Fonti autorevoli per gli standard implementati da questo componente.

Documentazione e demo

Vai al riferimento del componente, scarica il progetto demo pronto all'uso e prova la versione trial.

Guida online — TsgcHTTP_JWT_Client Riferimento completo di proprietà, metodi ed eventi per questo componente.
Progetto demo — Demos\20.HTTP_Protocol\05.JWT Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto.
Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente.
Manuale utente (PDF) Manuale completo che copre tutti i componenti della libreria.

Pronto a generare JWT firmati?

Scarica la versione di prova gratuita e aggiungi la firma JWT alle tue applicazioni Delphi.