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;
