JWT 客户端

从 Delphi/C++Builder 生成、签署和验证 JSON Web Token。HMAC、RSA 和 ECDSA 签名,PASETO 风格加密 JWE,自动刷新,轻松集成 TsgcHTTP2Client / TsgcHTTPComponentClient。

TsgcHTTP_JWT_Client

签署 HS256/HS384/HS512、RS256/RS384/RS512、ES256/ES384、EdDSA 令牌;解码传入 JWT;临近过期时自动刷新;通过 Authentication.Token.JWT 与 HTTP 和 HTTP/2 客户端配合使用。

组件类

TsgcHTTP_JWT_Client

平台

Windows, macOS, Linux, iOS, Android

版本

Professional / Enterprise

配置标头 + 载荷,签署,附加

设置 Header.alg、Payload.iss / iat / exp,加载签署密钥,然后将 JWT 客户端作为持票人令牌源附加到 HTTP / HTTP/2 / WebSocket 组件。

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

内部功能

类型化的 JWT 生成与验证组件,支持 HMAC、RSA、ECDSA 和 EdDSA 签名,自动刷新,并与 HTTP / HTTP/2 / WebSocket 组件无缝集成。

算法

JWTOptions.Header.alg 选择 HS256/384/512、RS256/384/512、ES256/384/512、PS256/384/512 或 EdDSA。密钥从 PEM、P8 或内存流加载。

标准声明

JWTOptions.Payload.isssubaudexpnbfiatjti 是与 RFC 7519 对应的类型化属性 — 另加用于厂商扩展的自由格式 CustomClaims

自动刷新

RefreshTokenAfter 指示组件在 N 秒后生成新 JWT — 适用于 Apple 要求在一小时内轮换的 APNs ES256 令牌。

解码与验证

Decode(token) 解析传入 JWT 并针对已配置密钥验证签名;OnVerify 以成功/失败和已解析载荷触发。

JWE 支持

支持符合 RFC 7516 的加密 JWT(JWE):AES-CBC、AES-GCM、RSA-OAEP 和 ECDH-ES 密钥包装。

与 HTTP/2 无缝集成

通过设置 Authentication.Token.JWTTsgcHTTP2ClientTsgcHTTPComponentClient 配合使用 — 每个出站请求都会获得新鲜的已签署持票人令牌。

规范与参考

本组件所实现标准的权威来源。

文档与演示

直达组件参考,获取可立即运行的演示项目,并下载试用版。

在线帮助 — TsgcHTTP_JWT_Client 本组件的完整属性、方法和事件参考。
演示项目 — Demos\20.HTTP_Protocol\05.JWT 可立即运行的示例项目,随 sgcWebSockets 包一起提供 — 请从下方下载试用版。
技术文档 (PDF) 仅涵盖本组件的功能、快速入门、Delphi 和 C++ Builder 代码示例及主要参考来源。
用户手册 (PDF) 涵盖库中每个组件的综合手册。

准备好生成签署的 JWT 了吗?

下载免费试用版,为您的 Delphi 应用程序添加 JWT 签名功能。