Client JWT Delphi

· Componenti

Da sgcWebSockets 4.4.8 JWT è supportato sui componenti client come WebSocket Client e HTTP/2 Client.

Il componente TsgcHTTP_JWT_Client permette di codificare e firmare token JWT, collegato a un WebSocket Client o client HTTP/2, il token verrà inviato automaticamente come header Authorization Bearer Token.


Configurazione 

 Puoi configurare i valori JWT nelle proprietà JWTOptions, ci sono 2 proprietà principali: Header e Payload, basta impostare i valori per ogni proprietà richiesta.

Se la firma è cifrata usando una chiave privata (algoritmi RS ed ES), imposta il valore nella proprietà PrivateKey dell'algoritmo.

Se la firma è cifrata usando un Secret (algoritmi HS), imposta il valore nella proprietà Secret dell'algoritmo.

Header personalizzati 

Le proprietà Header e Payload contengono gli header più comuni usati per generare un JWT, ma puoi aggiungere altri header chiamando il metodo AddKeyValue e passando Key e Value come parametri.

Esempio: se vuoi aggiungere un nuovo record nell'header JWT con il tuo nome, usa il seguente metodo

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

Dopo aver configurato le proprietà, per generare il JWT, basta chiamare il metodo Sign che restituirà il valore del JWT.

WebSocket Client e JWT 

TsgcWebSocketClient permette l'uso di JWT durante la connessione ai server WebSocket, basta creare un nuovo client JWT e assegnarlo alla proprietà 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;