JWT Client

Twórz, podpisuj i weryfikuj JSON Web Tokens w Delphi/C++ Builder. Podpisy HMAC, RSA i ECDSA, szyfrowane JWE w stylu PASETO, automatyczne odświeżanie i łatwa integracja z TsgcHTTP2Client / TsgcHTTPComponentClient.

TsgcHTTP_JWT_Client

Podpisuje tokeny HS256/HS384/HS512, RS256/RS384/RS512, ES256/ES384, EdDSA; dekoduje przychodzące JWT; automatycznie odświeża przed wygaśnięciem; integruje się z klientami HTTP i HTTP/2 przez Authentication.Token.JWT.

Klasa komponentu

TsgcHTTP_JWT_Client

Protokół

RFC 7519 (JWT)

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Professional / Enterprise

Skonfiguruj nagłówek i ładunek, podpisz, dołącz

Ustaw Header.alg, Payload.iss / iat / exp, załaduj klucz podpisujący, a następnie dołącz klienta JWT do swojego komponentu HTTP / HTTP/2 / WebSocket jako źródło tokenu bearer.

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; // auto-mint every 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);

Co jest w środku

Typowany komponent do tworzenia i weryfikacji JWT z podpisami HMAC, RSA, ECDSA i EdDSA, automatycznym odświeżaniem i bezproblemową integracją z komponentami HTTP / HTTP/2 / WebSocket.

Algorytmy

JWTOptions.Header.alg wybiera HS256/384/512, RS256/384/512, ES256/384/512, PS256/384/512 lub EdDSA. Klucze są ładowane z PEM, P8 lub strumieni w pamięci.

Standardowe roszczenia

JWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jti są typowanymi właściwościami zgodnymi z RFC 7519 — plus swobodne CustomClaims dla rozszerzeń dostawcy.

Automatyczne odświeżanie

RefreshTokenAfter nakazuje komponentowi wygenerować nowy JWT po N sekundach — przydatne dla tokenów APNs ES256, które Apple oczekuje rotowanych w ciągu godziny.

Dekodowanie i weryfikacja

Decode(token) parsuje przychodzący JWT i weryfikuje podpis względem skonfigurowanych kluczy; OnVerify jest wywoływane z wynikiem sukcesu/błędu i sparsowanym ładunkiem.

Obsługa JWE

Szyfrowane JWT (JWE) zgodnie z RFC 7516 są obsługiwane: zawijanie kluczy AES-CBC, AES-GCM, RSA-OAEP i ECDH-ES.

Integracja z HTTP/2

Połącz z TsgcHTTP2Client lub TsgcHTTPComponentClient przez ustawienie Authentication.Token.JWT — każde wychodzące żądanie otrzymuje świeży podpisany token bearer.

Specyfikacje i odniesienia

Autorytatywne źródła standardów implementowanych przez ten komponent.

Dokumentacja i dema

Przejdź bezpośrednio do dokumentacji komponentu, pobierz gotowy do uruchomienia projekt demonstracyjny i pobierz wersję próbną.

Pomoc online — TsgcHTTP_JWT_Client Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demonstracyjny — Demos\20.HTTP_Protocol\05.JWT Gotowy do uruchomienia projekt przykładowy. Dostarczany w pakiecie sgcWebSockets — pobierz wersję próbną poniżej.
Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł — tylko ten komponent.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.

Gotowy, żeby tworzyć podpisane JWT?

Pobierz bezpłatną wersję próbną i dodaj podpisywanie JWT do swoich aplikacji Delphi.