Ab sgcWebSockets 4.4.8 wird JWT in Client-Komponenten wie WebSocket-Client und HTTP/2-Client unterstützt.
Die Komponente TsgcHTTP_JWT_Client ermöglicht das Kodieren und Signieren von JWT-Tokens. Wird sie an einen WebSocket-Client oder HTTP/2-Client angehängt, wird das Token automatisch als Authorization Bearer Token Header gesendet.
Konfiguration
Du kannst die JWT-Werte in den JWTOptions-Eigenschaften konfigurieren. Es gibt 2 Hauptbereiche: Header und Payload. Setze einfach die Werte für jede benötigte Eigenschaft.
Wenn die Signatur mit einem privaten Schlüssel (RS- und ES-Algorithmen) verschlüsselt wird, setze den Wert in der Eigenschaft PrivateKey des Algorithmus.
Wenn die Signatur mit einem Secret (HS-Algorithmen) verschlüsselt wird, setze den Wert in der Eigenschaft Secret des Algorithmus.
Benutzerdefinierte Header
Die Eigenschaften Header und Payload enthalten die gebräuchlichsten Header zum Erzeugen eines JWT. Du kannst aber weitere Header hinzufügen, indem du die Methode AddKeyValue aufrufst und Schlüssel und Wert als Parameter übergibst.
Beispiel: wenn du einen neuen Eintrag im JWT-Header mit deinem Namen hinzufügen willst, verwende die folgende Methode
Header.AddKeyValue('name', 'John Smith');
Nachdem du die Eigenschaften konfiguriert hast, rufe einfach die Methode Sign auf, um das JWT zu erzeugen; sie gibt den Wert des JWT zurück.
WebSocket-Client und JWT
TsgcWebSocketClient erlaubt die Verwendung von JWT beim Verbinden mit WebSocket-Servern. Erstelle einfach einen neuen JWT-Client und weise ihn der Eigenschaft Authentication.Token.JWT zu.
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;
