Créer un jeton porteur
Échange les informations d’authentification d’une Auth Key contre un jeton porteur à portée définie.
https://api2.transloadit.com/ tokenCe point de terminaison échange votre Auth Key et votre
Auth Secret contre un jeton porteur à courte durée de vie. Il reprend
le flux OAuth 2.0 client_credentials, mais est géré directement par l’API
Transloadit.
Les jetons sont créés côté serveur via ce point de terminaison à l’aide de votre Auth Key/Auth Secret. Si vous proposez la création de jetons
via une interface utilisateur, appelez /token depuis votre backend (jamais directement depuis le navigateur).
Les Workspaces résiliés ne peuvent pas créer de nouveaux jetons porteurs. Pour les points de terminaison dont la documentation autorise explicitement les lectures après résiliation, utilisez plutôt la procédure de lecture signée avec une Auth Key existante et active. La facturation dispose de sa propre procédure de requête de facturation signée.
Les requêtes doivent utiliser application/x-www-form-urlencoded et l’authentification HTTP Basic :
Dans un shell de confiance côté serveur disposant de curl et de jq, définissez TRANSLOADIT_KEY et TRANSLOADIT_SECRET avec les valeurs de votre Auth Key et de votre Auth Secret. Gardez les deux informations d’identification et le jeton obtenu secrets ; n’exécutez jamais cette configuration dans du code de navigateur.
Cet exemple demande un accès en lecture et en écriture aux Assemblies et enregistre la valeur access_token renvoyée dans TRANSLOADIT_TOKEN pour les requêtes suivantes dans le même shell. Pour un autre point de terminaison, utilisez plutôt les portées indiquées pour celui-ci ; l’Auth Key doit déjà les accorder. Les points de terminaison authentifiés par une Auth Key ou un jeton porteur incluent la configuration de jeton appropriée dans leurs exemples de requêtes.
if ! TOKEN_RESPONSE="$(curl --fail-with-body -sS \
--request POST \
--url 'https://api2.transloadit.com/token' \
--user "${TRANSLOADIT_KEY:?Set TRANSLOADIT_KEY}:${TRANSLOADIT_SECRET:?Set TRANSLOADIT_SECRET}" \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'aud=api2' \
--data-urlencode 'scope=assemblies:read assemblies:write')"; then
printf '%s\n' "$TOKEN_RESPONSE" >&2
exit 1
fi
TRANSLOADIT_TOKEN="$(printf '%s' "$TOKEN_RESPONSE" |
jq -er '.access_token | strings | select(length > 0)')" || exit 1
Authentification
Ce point de terminaison utilise l’authentification HTTP Basic avec votre Auth Key et votre secret.
Champs de formulaire
Type de contenu : application/x-www-form-urlencoded
Les champs suivants peuvent être envoyés au maximum une fois : aud, grant_type, scope.
Schéma JSON complet
Formulaire de demande de jeton OAuth 2.0 avec les informations d’authentification du client.
Les champs autres que ceux répertoriés pour cet objet sont acceptés.
| Champ | Type et description |
|---|---|
aud | stringValeur d’audience facultative. Si elle est omise, la valeur par défaut configurée pour le déploiement est utilisée ( |
grant_typeobligatoire | string (toujours : "client_credentials")Demande un jeton à l’aide des informations d’authentification fournies via l’authentification HTTP Basic. |
scope | stringListe facultative de portées séparées par des espaces ou des virgules. Si elle est omise, le jeton hérite de toutes les portées accordées à votre Auth Key. |
Utiliser le jeton
Transmettez le jeton sous la forme Authorization: Bearer <access_token> dans vos requêtes API. Lorsqu’une requête est
authentifiée avec un jeton porteur valide, API2 considère
Signature Authentication comme satisfaite et
ignore la validation de la signature. Signature Authentication n’est appliquée qu’aux requêtes par clé/secret.
Les vérifications de portée continuent de s’appliquer. L’audience api2 par défaut est acceptée par les points de terminaison API2 standard et est
valide pendant 21 600 secondes par défaut. L’audience mcp est acceptée par le serveur MCP,
rejetée par les points de terminaison API2 standard, et valide pendant
604 800 secondes par défaut. Considérez la valeur expires_in de la réponse comme faisant foi.
Réponse
Voici un exemple de corps de réponse :
{
"access_token": "opaque-token",
"expires_in": 21600,
"scope": "assemblies:read assemblies:write",
"token_type": "Bearer"
}Succès 2xx
Corps de la réponse JSON. application/json
Schéma du corps de la réponse
Schéma JSON complet
La réponse contient uniquement les champs répertoriés pour cet objet.
| Champ | Type et description |
|---|---|
access_tokenobligatoire | string (longueur minimale : 1)Le jeton à envoyer dans l’en-tête Authorization des requêtes API suivantes. Gardez-le secret. |
expires_inobligatoire | integer (minimum exclusif : 0)Durée de validité du jeton en secondes à compter de son émission. Demandez un nouveau jeton après son expiration. |
scopeobligatoire | string (longueur minimale : 1, longueur maximale : 512)Portées accordées à ce jeton, séparées par des espaces. Motif de validation (expression régulière)^(?:read|write|auth_keys:write|auth_keys:read|assemblies:write|assemblies:read|assembly_notifications:write|dam:read|dam:write|template_credentials:read|template_credentials:write|billing:read|queues:read|smart_cdn:sign|templates:read|templates:write|storage_grants:write)(?: (?:read|write|auth_keys:write|auth_keys:read|assemblies:write|assemblies:read|assembly_notifications:write|dam:read|dam:write|template_credentials:read|template_credentials:write|billing:read|queues:read|smart_cdn:sign|templates:read|templates:write|storage_grants:write))*$ |
token_typeobligatoire | string (toujours : "Bearer") |
HTTP 400
Corps de la réponse JSON. application/json
Schéma du corps de la réponse
Schéma JSON complet
N’importe lequel des schémas suivants peut s’appliquer :
error: "GET_ACCOUNT_UNKNOWN_AUTH_KEY"
Impossible de récupérer le Workspace, cette Auth Key est inconnue.
La réponse peut contenir des champs supplémentaires.
error: "TOKEN_INVALID_GRANT_TYPE"
Type d’octroi non valide.
La réponse peut contenir des champs supplémentaires.
error: "TOKEN_INVALID_REQUEST"
La demande de jeton n’est pas valide.
La réponse peut contenir des champs supplémentaires.
HTTP 401
Corps de la réponse JSON. application/json
Schéma du corps de la réponse
Schéma JSON complet
N’importe lequel des schémas suivants peut s’appliquer :
error: "SERVER_401"
Autorisation requise.
La réponse peut contenir des champs supplémentaires.
error: "TOKEN_INVALID_CREDENTIALS"
Informations d’authentification du client invalides.
La réponse peut contenir des champs supplémentaires.
HTTP 403
Corps de la réponse JSON. application/json
Schéma du corps de la réponse
Schéma JSON complet
N’importe lequel des schémas suivants peut s’appliquer :
error: "TOKEN_INVALID_AUDIENCE"
Audience invalide.
La réponse peut contenir des champs supplémentaires.
error: "TOKEN_INVALID_SCOPE"
Portée invalide ou non autorisée.
La réponse peut contenir des champs supplémentaires.
HTTP 429
Corps de la réponse JSON. application/json
Schéma du corps de la réponse
Schéma JSON complet
Limite de requêtes atteinte.
La réponse peut contenir des champs supplémentaires.
HTTP 500
Corps de la réponse JSON. application/json
Schéma du corps de la réponse
Schéma JSON complet
Erreur inattendue.
La réponse peut contenir des champs supplémentaires.