Authentifizierungsfehler
Detaillierte Erklärungen und Lösungen für authentifizierungsbezogene Fehler.
HTTP 401 Unauthorized
{
"status": 401,
"error": "Unauthorized",
"message": "JWT token is missing or invalid"
}
Checkliste:
| Prüfung | Erwartet |
|---|---|
| Header-Name | Authorization (grosses A) |
| Header-Wert-Präfix | Bearer (mit Leerzeichen nach Bearer) |
| Token-Quelle | Feld token aus der Antwort von /api/v1/login |
| Token nicht abgelaufen | expireAt über /api/v1/login-extended prüfen |
| Keine zusätzlichen Zeichen | Leerzeichen vor/nach dem Token-String entfernen |
HTTP 401 – Token abgelaufen
Token haben eine serverseitig konfigurierte TTL. Nach Ablauf gibt jede Anfrage 401 zurück.
Lösung: Erneut authentifizieren:
curl -X POST "https://label-print-shipments.dpd.ch/api/v1/login" \
-H "Content-Type: application/json" \
-d '{"username": "ihr_benutzer", "password": "ihr_passwort"}'
Vorbeugung – proaktiv vor Ablauf erneuern:
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 – Benutzername oder Passwort fehlt
{
"status": 400,
"errors": [{ "field": "username", "message": "must not be blank" }]
}
Lösung: Stellen Sie sicher, dass sowohl username als auch password im Anfrage-Body vorhanden und nicht leer sind.
HTTP 403 – Forbidden (login-extended)
{
"status": 403,
"message": "Auto-login context is missing"
}
Ursache: /api/v1/login-extended erfordert einen Auto-Login-Kontext, der für Ihr Konto nicht eingerichtet ist.
Lösung: Verwenden Sie stattdessen /api/v1/login, oder wenden Sie sich an Ihren DPD-Ansprechpartner.
Anmeldedaten korrekt, aber trotzdem 401?
- Prüfen Sie, ob Sie die richtige Umgebungs-URL verwenden (dev vs. staging vs. production)
- Stellen Sie sicher, dass Ihr Konto aktiv ist – kontaktieren Sie den DPD-Support
- Prüfen Sie, ob Ihre IP-Adresse für den API-Zugriff freigeschaltet werden muss