JWT İstemcisi

Delphi/C++Builder'dan JSON Web Token'larını oluşturun, imzalayın ve doğrulayın. HMAC, RSA ve ECDSA imzaları, PASETO tarzı şifreli JWE, otomatik yenileme ve TsgcHTTP2Client / TsgcHTTPComponentClient ile kolay entegrasyon.

TsgcHTTP_JWT_Client

HS256/HS384/HS512, RS256/RS384/RS512, ES256/ES384, EdDSA token'larını imzalayın; gelen JWT'leri çözün; sona erme süresine yaklaşırken otomatik yenileyin; Authentication.Token.JWT aracılığıyla HTTP ve HTTP/2 istemcileriyle eşleştirin.

Bileşen sınıfı

TsgcHTTP_JWT_Client

Protokol

RFC 7519 (JWT)

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Professional / Enterprise

Başlığı + yükü yapılandırın, imzalayın, ekleyin

Header.alg, Payload.iss / iat / exp değerlerini ayarlayın, imzalama anahtarını yükleyin, ardından JWT istemcisini bearer token kaynağı olarak HTTP / HTTP/2 / WebSocket bileşeninize ekleyin.

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

İçeriğinde neler var

HMAC, RSA, ECDSA ve EdDSA imzaları, otomatik yenileme ve HTTP / HTTP/2 / WebSocket bileşenlerine temiz bir devir ile tipli bir JWT oluşturma ve doğrulama bileşeni.

Algoritmalar

JWTOptions.Header.alg HS256/384/512, RS256/384/512, ES256/384/512, PS256/384/512 veya EdDSA seçer. Anahtarlar PEM, P8 veya bellek içi akışlardan yüklenir.

Standart claim'ler

JWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jti RFC 7519 ile eşleşen tipli özelliklerdir — ayrıca satıcı uzantıları için serbest biçimli bir CustomClaims.

Otomatik yenileme

RefreshTokenAfter bileşene N saniye sonra yeni bir JWT oluşturmasını söyler — Apple'ın bir saat içinde döndürülmesini beklediği APNs ES256 token'ları için kullanışlıdır.

Çözme ve doğrulama

Decode(token) gelen bir JWT'yi ayrıştırır ve imzayı yapılandırılan anahtarlara karşı doğrular; OnVerify başarı/başarısızlık ve ayrıştırılan yük ile tetiklenir.

JWE desteği

RFC 7516'ya göre şifreli JWT'ler (JWE) desteklenir: AES-CBC, AES-GCM, RSA-OAEP ve ECDH-ES anahtar sarmalama.

HTTP/2 için hazır eklenti

Authentication.Token.JWT ayarlayarak TsgcHTTP2Client veya TsgcHTTPComponentClient ile eşleştirin — giden her istek yeni imzalanmış bir bearer token alır.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı standartlar için yetkili kaynaklar.

Belgeler ve Demolar

Bileşen referansına doğrudan bağlanın, kullanıma hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım — TsgcHTTP_JWT_Client Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\20.HTTP_Protocol\05.JWT Kullanıma hazır örnek proje. sgcWebSockets paketi içinde gelir — aşağıdan denemeyi indirin.
Teknik Belge (PDF) Delphi ve C++ Builder için özellikler, hızlı başlangıç, kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.

İmzalı JWT'ler Oluşturmaya Hazır mısınız?

Ücretsiz denemeyi indirin ve Delphi uygulamalarınıza JWT imzalama ekleyin.