Statuskoder & felsvar
Skillnaden mellan "förnya token", "logga in på nytt" och "sluta försöka" är det som avgör om integrationen återhämtar sig eller låser ute kontot.
Felsvarets form / Error response shape
{
"status": 401,
"title": "Unauthorized",
"detail": "The access token has expired."
}Behandla status som sanningen. Textfälten är avsedda för loggar och felsökning, inte för att matchas på i kod.
Katalog#
| Status | Var | Vad som hänt | Klientens åtgärd |
|---|---|---|---|
400 | /auth/refresh | Refresh-token saknas, är förbrukad eller felformad | Full ominloggning. Retry:a aldrig samma token |
400 | /auth/login-by-phone | phoneNumber matchar inte ^[+][0-9]{9,13}$, eller fält saknas | Rätta begäran. Ingen retry |
401 | Alla skyddade anrop | Access-token saknas, är utgången eller ogiltig | Förnya en gång, gör om anropet en gång |
401 | /auth/refresh | Refresh-token förbrukad eller utgången | Full ominloggning. Aldrig retry på token |
401 | Direkt efter lyckad förnyelse | Sessionen övertagen av en annan inloggning | Sluta. Larma. Loopa inte |
403 | /device/{deviceId}/* | Kontot har ingen nyckel till enheten | Sluta. Kontakta KiiOn om nyckeldelning |
404 | /device/{deviceId}/* | Okänt {deviceId}, eller enheten tillhör inte kontot | Hämta enhetslistan på nytt och uppdatera mappningen |
409 | Auth | Sessionen ersattes av en samtidig inloggning | Sluta. Säkerställ en singleton per konto |
429 | Alla | För många anrop | Respektera Retry-After. Exponentiell backoff med jitter |
500 | Alla | Fel på serversidan | Backoff, försök igen — utom på unlock |
502 / 503 / 504 | /device/{deviceId}/unlock | Enheten eller gatewayen svarar inte | Retry:a inte automatiskt. Visa felet för användaren |
Tre regler som räcker#
- `401` på ett vanligt anrop = förnya och gör om en gång. Fortsätter det: sluta.
- `401`/`400` från `/auth/refresh` = token är död. Logga in på nytt, aldrig retry.
- `403` och `404` går inte att försöka sig ur.
403kräver en nyckel,404kräver en ny mappning.
Vidare
Kopiera sidan som Markdown: Visa som Markdown