Format des JSON Web Token (JWT)
In diesem Dokument wird die Drive API behandelt. Wenn du die Drive (classic)-API verwendest, lies den Leitfaden zu Drive (classic)-JWTs.
JSON Web Tokens (JWTs) sind ein Token-Format für die Authentifizierung, das für die Kommunikation mit DoorDash-APIs verwendet wird. Sie ermöglichen eine sichere Kommunikation zwischen zwei Parteien, indem sie die Informationen signieren. JWTs ermöglichen es Benutzern, sich beim Service zu authentifizieren, ohne jemals ein Geheimnis über die Leitung senden zu müssen. Die Erstellung von JWTs wird in allen gängigen Programmiersprachen unterstützt.
Ein JWT zur Authentifizierung mit der API verwenden
Damit du dich mit der API authentifizieren kannst, musst du das JWT als Bearer-Token im Authentifizierungs-Header angeben.
Authorization: Bearer [JWT]
Aufbau eines JWT
JWTs bestehen aus drei Teilen, die durch Punkte getrennt sind:
- Header
- Payload
- Signatur
Das Ergebnis ist ein Token, das folgendermaßen aussieht: aaa.bbb.ccc
Header
Der Header gibt den Algorithmus an, der zum Signieren des Tokens verwendet wird – HMAC SHA 265 (HS265) und die DoorDash JWT-Version (v1)
{
"alg": "HS256",
"typ": "JWT",
"dd-ver": "DD-JWT-V1"
}
Der Header ist Base64url-kodiert und bildet den ersten Teil des JWT.
Payload
Der Inhalt des Tokens als JSON-Objekt. Dieser Inhalt kann vom Empfänger als vertrauenswürdig eingestuft werden.
Payload-Format
{
"aud": "doordash",
"iss": DEVELOPER ID,
"kid": KEY ID,
"iat": ISSUED AT,
"exp": EXPIRATION
}
aud – Audience (Zielgruppe). Lege dies immer auf „doordash“ fest.
iss – Issuer (Aussteller). Lege dies auf die Entwickler-ID (UUID-Format) fest.
kid – Key ID (ID des Schlüssels). Lege dies auf die ID des Schlüssels (UUID-Format) fest, der zum Signieren des JWT verwendet wurde.
iat – Issued At (Ausgestellt um). Wann das Token erstellt wurde. Formatiert als Sekunden seit der Epoche. iat darf nicht in der Zukunft liegen.
exp – Expiration (Ablaufdatum). Wann das Token abläuft. Formatiert als Sekunden seit der Epoche. exp hat einen maximalen Wert von 30 Minuten (1800 Sekunden) nach dem Zeitpunkt der Ausstellung.
Beispiel
{
"aud": "doordash",
"iss": "582e4f20-0f48-4bc2-99c2-e094675e2919",
"kid": "585698aa-2aa6-4bb4-8b3f-dd9d3f47dc28",
"iat": 1636463841,
"exp": 1636465641
}
Die Payload ist Base64url-kodiert und bildet den zweiten Teil des JWT.
Signatur
Die Signatur dient zur Überprüfung der Authentizität des Inhalts. Nur jemand, der das Signaturgeheimnis kennt, ist in der Lage, die richtige Signatur zu erzeugen. Die Signatur wird mit dem Algorithmus HMAC SHA256 (HS256) berechnet.
Die Signatur ist Base64url-kodiert und bildet den dritten Teil des JWT.
Schutz deines Geheimnisses
Behandle dein Signaturgeheimnis wie ein Passwort. Bewahre dein Geheimnis in einem sicheren Speicher oder Tresor auf, um es vor Diebstahl und Missbrauch zu schützen.