Formato JSON Web Token (JWT)
Este documento cubre la API de Drive (Classic). Si utilizas la API de Drive, consulta la guía de referencia para los JWT de Drive.
Los token web JSON (JWT) son una forma de token para autenticación que se usan para comunicarse con las API de DoorDash. Permiten que dos partes se comuniquen de forma segura al firmar la información. Los JWT permiten a los usuarios establecer confianza con el servicio sin tener que enviar un “secret” por la red. Además, la creación de JWT tiene asistencia en todos los lenguajes de programación comunes.
Usar un JWT para la autenticación con la API
Para realizar la autenticación con la API, proporciona el JWT como token Bearer en el encabezado de autenticación.
Authorization: Bearer [JWT]
Anatomía de un JWT
Los JWT constan de tres partes separadas por puntos que son:
- Encabezado
- Carga
- Firma
Los resultados son un token que se parece a aaa.bbb.ccc
.
Encabezado
El encabezado especifica el algoritmo que se usa para firmar el token - HMAC SHA 265 (HS265) y la versión (v1) de JWT de DoorDash
{
"alg": "HS256",
"typ": "JWT",
"dd-ver": "DD-JWT-V1"
}
El encabezado está codificado en Base64url y constituye la primera parte del JWT.
Carga
El contenido del token es un objeto json. El destinatario puede confiar en este contenido.
Formato de la carga
{
"aud": "doordash",
"iss": DEVELOPER ID,
"kid": KEY ID,
"iat": ISSUED AT,
"exp": EXPIRATION
}
aud\: Audience (Audiencia). Siempre se establece en DoorDash.
iss\: Issuer (Emisor). Se establece en la ID del desarrollador (formato UUID).
kid\: Key ID (ID principal). Se establece en la ID principal (formato UUID) que se usó para firmar el JWT.
iat\: Issued At (Emitido el). Cuando se creó el token. Formateado como segundos desde el Epoch. iat no puede ser en el futuro.
exp\: Expiration (Vencimiento). Cuando expira el token. Formateado como segundos desde el Epoch. exp tiene un valor máximo de 30 minutos (1800 segundos) más allá del momento en que se emitió.
EJEMPLO
{
"aud": "doordash",
"iss": "582e4f20-0f48-4bc2-99c2-e094675e2919",
"kid": "585698aa-2aa6-4bb4-8b3f-dd9d3f47dc28",
"iat": 1636463841,
"exp": 1636465641
}
La carga está codificada en Base64url y constituye la segunda parte del JWT.
Firma
La firma se utiliza para verificar la autenticidad del contenido. Solo alguien con el “secret” que permite firmar puede realizar la firma correcta. La firma se calcula mediante el algoritmo HMAC SHA256 (HS256).
La firma está codificada en Base64url y constituye la tercera parte del JWT.
Cómo proteger tu “secret”
Trata tu “secret” que permite firmar como una contraseña. Guarda tu “secret” en un almacén seguro o en una caja de seguridad para protegerlo de robos y usos indebidos.