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.
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.
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.
TsgcHTTP_JWT_Client
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
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);
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.
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.
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.
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.
Decode(token) analisa um JWT recebido e verifica a assinatura com as chaves configuradas; OnVerify é disparado com o resultado e o payload analisado.
JWTs criptografados (JWE) conforme RFC 7516 são suportados: AES-CBC, AES-GCM, RSA-OAEP e encapsulamento de chave ECDH-ES.
Combine com TsgcHTTP2Client ou TsgcHTTPComponentClient definindo Authentication.Token.JWT — cada requisição de saída recebe um bearer token assinado e atualizado.
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. | Open | |
| 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. | Open | |
| 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. | Open | |
| Manual do Usuário (PDF) Manual abrangente cobrindo todos os componentes da biblioteca. | Open |