create JWT(a,b,c,d)


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"}
Payload: {"sub":"1234567890","name":"John Doe","iat":1516239022}


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.