JWT Client

Mint, sign and verify JSON Web Tokens from Delphi/C++Builder. HMAC, RSA and ECDSA signatures, PASETO-style encrypted JWE, automatic refresh and easy integration with TsgcHTTP2Client / TsgcHTTPComponentClient.

TsgcHTTP_JWT_Client

Assine tokens HS256/HS384/HS512, RS256/RS384/RS512, ES256/ES384, EdDSA; decodifique JWTs recebidos; atualize automaticamente perto do vencimento; combine com os clientes HTTP e HTTP/2 via Authentication.Token.JWT.

Classe do componente

TsgcHTTP_JWT_Client

Protocolo

RFC 7519 (JWT)

Plataformas

Windows, macOS, Linux, iOS, Android

Edição

Professional / Enterprise

Configure header + payload, assine e anexe

Defina Header.alg, Payload.iss / iat / exp, carregue a chave de assinatura e anexe o cliente JWT ao seu componente HTTP / HTTP/2 / WebSocket como fonte do 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; // 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);

O que está incluído

Um componente tipado para criação e verificação de JWT com assinaturas HMAC, RSA, ECDSA e EdDSA, atualização automática e integração direta com os componentes HTTP / HTTP/2 / WebSocket.

Algoritmos

JWTOptions.Header.alg seleciona HS256/384/512, RS256/384/512, ES256/384/512, PS256/384/512 ou EdDSA. As chaves são carregadas de PEM, P8 ou streams em memória.

Claims padrão

JWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jti são propriedades tipadas conforme RFC 7519 — mais CustomClaims de formato livre para extensões de fornecedores.

Atualização automática

RefreshTokenAfter instrui o componente a criar um novo JWT após N segundos — útil para tokens APNs ES256 que a Apple exige rotacionados dentro de uma hora.

Decodificar e verificar

Decode(token) analisa um JWT recebido e verifica a assinatura com as chaves configuradas; OnVerify é disparado com o resultado e o payload analisado.

Suporte a JWE

JWTs criptografados (JWE) conforme RFC 7516 são suportados: AES-CBC, AES-GCM, RSA-OAEP e encapsulamento de chave ECDH-ES.

Integração com HTTP/2

Combine com TsgcHTTP2Client ou TsgcHTTPComponentClient definindo Authentication.Token.JWT — cada requisição de saída recebe um bearer token assinado e atualizado.

Especificações e referências

Fontes autoritárias para os padrões implementados por este componente.

Documentação e Demos

Acesse a referência do componente, obtenha o projeto de demonstração pronto para executar e baixe a versão de avaliação.

Ajuda Online — TsgcHTTP_JWT_Client Referência completa de propriedades, métodos e eventos deste componente.
Projeto de Demo — Demos\20.HTTP_Protocol\05.JWT Projeto de exemplo pronto para executar. Incluído no pacote sgcWebSockets — baixe a versão de avaliação abaixo.
Documento Técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fonte primária — somente este componente.
Manual do Usuário (PDF) Manual abrangente cobrindo todos os componentes da biblioteca.

Pronto para criar JWTs assinados?

Baixe a versão gratuita e adicione assinatura JWT às suas aplicações Delphi.