Fehler
import { VimineError } from '@vimine/sdk'; // auch aus /serverAlles, was schiefgeht, kommt als VimineError an, eine Unterklasse von Error. code ist der stabile
Bezeichner, nach dem Sie verzweigen: der code eines problem+json-Dokuments (RFC 9457), der error einer OAuth-Antwort
oder einer der eigenen Codes des SDK.
Eigenschaften
Abschnitt betitelt „Eigenschaften“| Typ | ||
|---|---|---|
code |
string |
der stabile Code |
message |
string |
detail oder title des Problems oder error_description |
status |
number | null |
der HTTP-Status, null bei lokalen Fehlern |
requestId |
string | null |
die request_id der Antwort: Nennen Sie sie in Meldungen |
detail |
string | null |
das detail des Problems |
errors |
FieldError[] — { field?, code?, message? } |
die Einzelheiten zu validation_failed und zu identification_required; ein Eintrag codicefiscale_mismatch enthält außerdem mismatches, hints und confirmable (Anleitung) |
cause |
unknown |
der zugrunde liegende Fehler (network, framed) |
isAuthError |
boolean |
true für „Die Sitzung ist weg: Neu anmelden“ (401, invalid_token, token_expired, missing_token, invalid_grant, not_signed_in) |
Die Codes des SDK
Abschnitt betitelt „Die Codes des SDK“code |
Wann |
|---|---|
invalid_options |
Konstruktor ohne clientId, redirectUri oder clientSecret |
network |
die Anfrage hat die API nicht erreicht (cause enthält den ursprünglichen Fehler) |
not_signed_in |
keine Sitzung oder kein Refresh-Token für einen authentifizierten Aufruf |
no_flow |
eine Rückkehr ohne eine Anmeldung, die in diesem Browser gestartet wurde (Speicher leer oder abgelaufen) |
state_mismatch |
die Rückkehr passt nicht zur gestarteten Anmeldung |
framed |
signIn() aus einem Cross-Origin-Frame |
http_<status> |
eine Fehlerantwort ohne erkennbaren JSON-Body |
Die Codes der API (insufficient_scope, not_found, validation_failed, statuto_required, rate_limited,
…) und die von OAuth (invalid_grant, access_denied, unauthorized_client, …) stehen in
Berechtigungen, Fehler und Limits.
Behandlung
Abschnitt betitelt „Behandlung“import { VimineError } from '@vimine/sdk';
try { await vimine.membership.acceptStatuto({ version });} catch (err) { if (!(err instanceof VimineError)) throw err; if (err.isAuthError) return vimine.signIn({ returnTo: location.pathname }); switch (err.code) { case 'statuto_outdated': return alert(`Eine neuere Version ist in Kraft: ${err.detail}`); case 'insufficient_scope': return vimine.signIn({ scopes: ['statuto:accept'], prompt: 'consent' }); case 'rate_limited': return setTimeout(retry, 5000); default: console.error(err.code, err.requestId); }}