Klient JWT dla Delphi

· Komponenty

Od sgcWebSockets 4.4.8 JWT jest obsługiwane w komponentach klienckich, takich jak WebSocket Client i HTTP/2 Client.

Komponent TsgcHTTP_JWT_Client umożliwia kodowanie i podpisywanie tokenów JWT — po dołączeniu do WebSocket Client lub HTTP/2 client token jest wysyłany automatycznie jako nagłówek Authorization Bearer Token.


Konfiguracja 

 Wartości JWT można skonfigurować we właściwościach JWTOptions — są dwie główne właściwości: Header i Payload. Ustaw wartości dla każdej wymaganej właściwości.

Jeśli podpis jest szyfrowany kluczem prywatnym (algorytmy RS i ES), ustaw wartość we właściwości PrivateKey algorytmu.

Jeśli podpis jest szyfrowany sekretem (algorytmy HS), ustaw wartość we właściwości Secret algorytmu.

Niestandardowe nagłówki 

Właściwości Header i Payload zawierają najczęściej używane nagłówki generowania JWT, ale możesz dodać więcej nagłówków wywołując metodę AddKeyValue i przekazując klucz i wartość jako parametry.

Przykład: jeśli chcesz dodać nowy rekord do nagłówka JWT ze swoim imieniem, użyj następującej metody

Header.AddKeyValue('name', 'John Smith');

Po skonfigurowaniu właściwości, aby wygenerować JWT, wywołaj metodę Sign — zwróci wartość tokenu JWT.

WebSocket Client i JWT 

TsgcWebSocketClient umożliwia używanie JWT przy łączeniu z serwerami WebSocket — utwórz nowy klient JWT i przypisz do właściwości Authentication.Token.JWT.

oClient := TsgcWebSocketClient.Create(nil);
oClient.URL := 'ws://echo.websocket.org';
oJWT := TsgcHTTP_JWT_Client.Create(nil);
oJWT.Header.alg := jwtRSA256;
oJWT.Payload.sub := '1234567890';
oJWT.Payload.iat := 1516239022;
oClient.Authentication.Enabled := True;
oClient.Authentication.URL.Enabled := False;
oClient.Authentication.Token.Enabled := True;
oClient.Authentication.Token.JWT := oJWT;
oClient.Active := True;