create JWT(a,b,c,d)
Gruppe |
Diese Funktion erzeugt einen JWT-Token (JSON Web Token) (gemäß RFC 7519).
Dabei wird der erzeugte Token entweder mit einem Zertifikat (Parameter c) oder einem HMAC (Parameter d) signiert.
JWT-Token bestehen aus zwei JSON-Teilen (Header und Payload). Beide werden der Funktion in einer Map (Parameter b) übergeben. Siehe Beispiel.
Die Funktion gibt als Ergebnis den signierten JWT-Token (mit den drei Bestandteilen Header, Payload und Signatur) zurück, kodiert in Base64.
Parameterbeschreibung
Parameter |
Beschreibung |
a |
Der zu verwendende JWT-Algorithmus (HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512). Hinweis: Verwenden Sie zur Auswahl eines Wertes die drei Punkte. |
b |
Der Name der Map mit den JSON-Elementen (Header, Payload). Siehe Beispiel. |
c |
ID des eigenen Zertifikats (bei JWT-Algorithmen RSx, ESx, PSx in Parameter a). |
d |
Shared Secret Key (frei wählbar) für HMAC-Signatur (bei JWT-Algorithmen HSx in Parameter a). |
Beispiel
Als erstes füllen wir die Map mymap mit folgenden Einträgen. Siehe Funktion add to map(key a, value b, name of map c, [skip empty d]). Beachten Sie bitte den speziellen Aufbau des Header-Schlüssels.
Schlüssel |
Wert |
@JWTHEADER_kid |
313476155373880299762899997753309067120 |
sub |
1234567890 |
name |
John Doe |
iat |
1516239022 |
Nun verwenden wir die Funktion mit folgenden Parametern.
Parameter |
Wert |
a |
HS256 |
b |
mymap |
c |
|
d |
mysharedsecretkey |
Das erzeugt intern die folgende JWT-Struktur.
Header: {"kid":"313476155373880299762899997753309067120","alg":"HS256","typ":"JWT"} |
Die Gültigkeit des erzeugten JWT-Tokens (signiert und Base64-kodiert) können Sie nun prüfen mit der Funktion check JWT(a,b,c,d). Verwenden Sie dazu den Shared Secret Key aus Parameter d.