Aller au contenu principal

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é"
}
ChampTypeObligatoireDescription
usernameStringOuiNom d'utilisateur
passwordStringOuiMot de passe

Réponse 200 OK :

{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Codes de statut :

CodeDescription
200 OKConnexion réussie
400 Bad RequestErreur de validation (champs manquants)
401 UnauthorizedIdentifiants 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 Unauthorized signifie que le jeton a expiré
  • Se reconnecter via /login pour 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