Authentification
L'API de connexion fournit des jetons JWT d'accès requis pour tous les points de terminaison protégés.
Chemin de base: /api/v1
POST /api/v1/login
Connexion standard — retourne des jetons d'accès et de rafraîchissement.
Authentification: Aucune (point de terminaison public)
Requête :
{
"username": "jean.dupont",
"password": "MotDePasse@Sécurisé"
}
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
username | String | Oui | Nom d'utilisateur |
password | String | Oui | Mot de passe |
Réponse 200 OK :
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
Codes de statut :
| Code | Description |
|---|---|
200 OK | Connexion réussie |
400 Bad Request | Erreur de validation (champs manquants) |
401 Unauthorized | Identifiants invalides |
POST /api/v1/login-extended
Retourne le jeton d'accès avec des informations supplémentaires (code dépôt, horodatage d'expiration).
Authentification: Aucune (point de terminaison public)
Requête: identique à /login
Réponse 200 OK :
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"userName": "jean.dupont",
"depotCode": "0699",
"expireAt": "2025-10-30T18:30:00Z"
}
Utilisation des jetons
Incluez le JWT dans chaque requête suivante :
curl -X GET "https://label-print-shipments.dpd.ch/api/v1/tracking/05305000123456" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Expiration du jeton
- La durée de vie (TTL) est configurée côté serveur (généralement 24 heures)
- Une réponse
401 Unauthorizedsignifie que le jeton a expiré - Se reconnecter via
/loginpour obtenir un nouveau jeton
Liste de contrôle de sécurité
- Toujours utiliser HTTPS en production
- Stocker les jetons dans des cookies HTTP-only sécurisés — jamais dans
localStorage - Ne jamais exposer les jetons dans les URLs ou les journaux
- Effacer les jetons à la déconnexion