Aller au contenu principal

Format des JWT (JSON Web Tokens)

API: Drive (classic)

Ce document traite de l’API Drive (classique). Si vous utilisez l’API Drive, consultez le guide de référence des JWT Drive.

Les JWT (JSON Web Tokens) sont un format de jeton d'authentification utilisé pour communiquer avec les API DoorDash. Ils permettent à deux parties de communiquer en toute sécurité en signant les informations. Les JWT permettent aux utilisateurs d'établir la confiance avec le service sans nécessiter l’envoie d’une clé secrète par voie électronique. De plus, tous les langages de programmation couramment utilisés prennent en charge la création de JWT.

Un JWT comme méthode d’authentification dans l’API

Afin de vous authentifier auprès de l’API, fournissez le JWT en tant que jeton du porteur dans l’en-tête d’authentification.

Authorization: Bearer [JWT]

Structure d'un JWT

Les JWT sont constitués de trois parties séparées par des points, soit les suivantes :

  • En-tête
  • Charge utile
  • Signature

Le résultat est un jeton qui ressemble à aaa.bbb.ccc

En-tête

L'en-tête spécifie l'algorithme utilisé pour signer le jeton – HMAC SHA 265 (HS265) et la version DoorDash du JWT (v1)

{
"alg": "HS256",
"typ": "JWT",
"dd-ver": "DD-JWT-V1"
}

L'en-tête, la première partie du JWT, est chiffrée selon la méthode base64url.

Charge utile

Le contenu du jeton en tant qu'objet json. Le destinataire peut faire confiance à ce contenu.

Format de la charge utile

{
"aud": "doordash",
"iss": DEVELOPER ID,
"kid": KEY ID,
"iat": ISSUED AT,
"exp": EXPIRATION
}

aud – audience Doit toujours avoir la valeur « Doordash »

iss – créateur Indiquer l'identifiant du développeur (format UUID).

kid – Identifiant de clé. Indiquer l'identifiant de clé (format UUID) utilisé pour signer le JWT.

iat – date d’émission du JWT Le moment de création du jeton. Le nombre de secondes depuis l’époque. La valeur d’iat ne peut pas être dans le futur.

exp – Expiration. Le moment d’expiration du jeton. Le nombre de secondes depuis l’époque. La valeur maximale d’exp est 30 minutes (1 800 secondes) après la valeur d’iat (le moment d’émission).

Exemple

{
"aud": "doordash",
"iss": "582e4f20-0f48-4bc2-99c2-e094675e2919",
"kid": "585698aa-2aa6-4bb4-8b3f-dd9d3f47dc28",
"iat": 1636463841,
"exp": 1636465641
}

La charge utile est encodée base64url et constitue la deuxième partie du JWT.

Signature

La signature est utilisée pour vérifier l'authenticité du contenu. Seule une personne possédant la clé secrète peut produire la signature appropriée. La signature est calculée à l'aide de l'algorithme HMAC SHA256 (HS256).

La signature, la troisième partie du JWT, est chiffrée selon la méthode base64url.

Protection de votre clé secrète

Traitez votre clé secrète de signature comme un mot de passe. Placez votre clé secrète dans un endroit sécurisé ou un coffre-fort pour empêcher le vol et l’utilisation frauduleuse.