Erreurs d'authentification
Explications détaillées et solutions pour les erreurs liées à l'authentification.
HTTP 401 Unauthorized
{
"status": 401,
"error": "Unauthorized",
"message": "JWT token is missing or invalid"
}
Liste de contrôle :
| Vérification | Attendu |
|---|---|
| Nom de l'en-tête | Authorization (avec A majuscule) |
| Préfixe de la valeur | Bearer (avec un espace après Bearer) |
| Source du jeton | Champ token de la réponse de /api/v1/login |
| Jeton non expiré | Vérifier expireAt via /api/v1/login-extended |
| Pas de caractères supplémentaires | Supprimer les espaces avant/après le jeton |
HTTP 401 — Jeton expiré
Les jetons ont une durée de vie (TTL) limitée configurée sur le serveur. Une fois expirés, chaque requête retourne 401.
Solution : Se reconnecter :
curl -X POST "https://label-print-shipments.dpd.ch/api/v1/login" \
-H "Content-Type: application/json" \
-d '{"username": "votre_utilisateur", "password": "votre_mdp"}'
Prévention — renouveler proactivement avant expiration :
// Enregistrer la date d'expiration depuis /login-extended
const tokenExpiry = new Date(loginResponse.expireAt);
async function getValidToken() {
const fiveMinuteBuffer = 5 * 60 * 1000;
if (Date.now() > tokenExpiry.getTime() - fiveMinuteBuffer) {
await reAuthenticate();
}
return currentToken;
}
HTTP 400 — Nom d'utilisateur ou mot de passe manquant
{
"status": 400,
"errors": [{ "field": "username", "message": "must not be blank" }]
}
Solution : Assurez-vous que les champs username et password sont tous deux présents et non vides dans le corps de la requête.
HTTP 403 — Forbidden (login-extended)
{
"status": 403,
"message": "Auto-login context is missing"
}
Cause : /api/v1/login-extended nécessite un contexte de connexion automatique qui n'est pas configuré pour votre compte.
Solution : Utilisez /api/v1/login à la place, ou contactez votre responsable de compte DPD pour activer la connexion étendue pour votre compte.
Identifiants corrects mais toujours 401 ?
- Vérifiez que vous appelez la bonne URL d'environnement (dev, staging ou production)
- Vérifiez que votre compte est actif — contactez le support DPD
- Vérifiez si votre adresse IP doit être autorisée (liste blanche) pour l'accès API