{"revision":"9f11a31dd2951db0","language":"it","entry":{"id":"oidc-request","kind":"endpoint","group":"oidc","title":"Leggi una richiesta di accesso","method":"GET","path":"/oidc/requests/{id}","paths":[],"summary":"I dati della pagina di consenso: l'app, se una scheda la garantisce, gli scope e i campi che il testo del consenso firma.","response":"La richiesta come il server l'ha controllata.","parameters":[{"name":"id","in":"path","required":true,"description":"L'id della richiesta: 43 caratteri dall'indirizzo della pagina di consenso (`?req=`) o dal suo elemento meta."}],"sample":"/oidc/requests/{id}","access":"private-code","base":"directory","notes":["Chi ha l'id lo legge, come chi ha l'indirizzo apre la pagina. Niente CORS."],"errors":["404 not_found","410 request_expired","429 rate_limited","500 internal_error","503 busy"],"related":["sign-in-with-veil"],"sections":[{"kind":"code","language":"shell","code":"curl -fsS 'https://veil.rip/oidc/requests/{id}'"}],"live":false,"responses":[{"status":200,"contentType":"application/json","description":"La richiesta come il server l'ha controllata.","fields":[{"name":"id","type":"string","description":"L'id della richiesta."},{"name":"issuer","type":"string","description":"https://veil.rip."},{"name":"client","type":"object","description":"{id, name, site, logo, verified, owner, dynamic, type}."},{"name":"redirectUri","type":"string","description":"Dove va il codice."},{"name":"redirectHost","type":"string | null","description":"Il suo host, per la pagina."},{"name":"scopes","type":"array<string>","description":"Nell'ordine in cui il consenso li firma."},{"name":"prompt","type":"string | null","description":"Il prompt dell'app."},{"name":"uiLocales","type":"string | null","description":"Gli ui_locales dell'app."},{"name":"askEveryTime","type":"boolean","description":"Il redirect URI è sull'interfaccia di loopback (un'app nativa): la pagina chiede il clic ogni volta, anche per un'app che la scheda ha approvato."},{"name":"consent","type":"object","description":"{prefix, iss, client, redirect, scopes, nonce, state (SHA-256 hex o null), challenge, request}: i campi firmati."},{"name":"createdAt","type":"string","description":"ISO 8601 UTC."},{"name":"expiresAt","type":"string","description":"30 minuti dopo."}]}],"responseObjects":[],"errorFormat":"json","errorDetails":[{"status":404,"code":"not_found","description":"La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati.","action":"Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati.","scope":"endpoint"},{"status":410,"code":"request_expired","description":"La richiesta di accesso è già stata usata o ha più di 30 minuti.","action":"Torna all'app e ricomincia.","scope":"endpoint"},{"status":429,"code":"rate_limited","description":"È stato superato un limite anonimo, delle richieste firmate o della chiave API.","action":"Attendi almeno i secondi indicati da `Retry-After`. Condividi coda e budget dei tentativi tra i tuoi processi.","scope":"common"},{"status":500,"code":"internal_error","description":"Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.","action":"Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.","scope":"common"},{"status":503,"code":"busy","description":"L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.","action":"Attendi i secondi indicati da `Retry-After` e riprova con attese crescenti e un limite.","scope":"common"}],"responseHeaders":[{"name":"Content-Type","value":"application/json","description":"JSON, anche per gli errori."},{"name":"Cache-Control","value":"no-store","description":"Privata: mai in una cache."}],"documentationUrl":"https://veil.rip/docs/oidc-request?lang=it","supportsBrowserFetch":false,"browserMode":"local-or-server"}}